Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

А есть ли станодарт оформления кода на SQL?   Найти похожие ветки 

 
Kolan ©   (2006-10-05 14:01) [0]

Здравствуйте,
 На Delphi есть(Идентификаторы в CamelCase, отступы итд). А для Sql?


 
Johnmen ©   (2006-10-05 14:10) [1]

Думается, что нет. Да и в Delphi это не стандарт, а рекомендации...


 
Kolan ©   (2006-10-05 14:48) [2]


> Johnmen ©   (05.10.06 14:10) [1]
>
> Думается, что нет. Да и в Delphi это не стандарт, а рекомендации.
> ..


За не соблюдение рекомендаций в Delphi, как, например, тут:
http://delphimaster.net/view/2-1159981434/

я бы убил :)

Вот я и хочу правильно писать, чтобы потом меня не убили:)

Вот есть допустим запрос:
SELECT DeviceID
FROM Devices
WHERE DeviceID IN
 (SELECT DeviceID FROM Measurments Where Data="C=20");


1. Пишутся ли зарезервированные слова большими буквами?
2. Как правильно переносить на др скроку? Те в Delphi же не пишут
for I := 1 to 10 do begin X:= X+ I end;, а пишут
for I := 1 to 10 do
begin
 X:= X+ I
end;


Видимо и в SQL должны быть места переноса. Какие?


 
Sergey13 ©   (2006-10-05 15:01) [3]

> Видимо и в SQL должны быть места переноса. Какие?

Правый край экрана. 8-)


 
Reindeer Moss Eater ©   (2006-10-05 15:07) [4]

Для некоторых серверов при использовании некоторых библиотек доступа при наприсании некоторых запросов имеет значение регистр.
Есть и другие приколы.


 
Johnmen ©   (2006-10-05 15:09) [5]


> Kolan ©   (05.10.06 14:48) [2]
> За не соблюдение рекомендаций в Delphi, как, например, тут:http:
> //delphimaster.net/view/2-1159981434/я
> бы убил :)Вот я и хочу правильно писать, чтобы потом меня
> не убили:)


Да кто тебя тронет??? Кетмар? Игорь Шевченко? Борланд?
Не переживай! У них руки коротки!

А за SQL вообще никакого авторитета, типа Борланда за Дельфи, не стоИт...
Так что и рекомендовать могут лишь производители SQL серверов. А их много. И у каждого своё чувство прекрасного...:)


 
dr Gonzo ©   (2006-10-05 15:22) [6]

У каждой СУБД свое. Как пример MSSQL :

http://www.sql.ru/articles/mssql/2004/04081802DatabaseNamingConvention.shtml

http://www.sql.ru/articles/mssql/2004/04081801SQLServerDatabaseCodingConventions.shtml

Плюс смотри системный процедуры. Обычно в прозападных конторах есть свои правила оформления. Лично мое мнение лучше поля нормально называть и ХП, это гораздо сильнее облегчает жизнь в больших проектах.


 
ANB ©   (2006-10-05 15:29) [7]

Тоад и девелопер сами умеют форматировать. И у них много настроек :)


 
Kolan ©   (2006-10-05 16:30) [8]


> Да кто тебя тронет??? Кетмар? Игорь Шевченко? Борланд?

Да я сам в первых рядах за красивое оформление :)


> dr Gonzo ©   (05.10.06 15:22) [6]

О это и возьму за основу :)

Благодарю.


 
PEAKTOP ©   (2006-10-05 16:33) [9]

Как-то давно, когда я еще работал рядовым программером в одной конторке и писал отчеты на InterBase procedures, стал форматировать исходники процедур. Не по каким-то правилам, так просто по свему уразумению, a-la код Delphi. А потом, че-то срочно надо было поправить и в мои исходники полез шеф. После того, как увидел мои исходники, сказал, что на "въезжание в тему" у него ушло 5 минут, а не 30 как обычно и правила форматирования стали на конторе стандартом.
Щас вот сам уже "типа шеф" и за нарушение правил форматирования -1% от заработка за каждый случай. Постонали конечно, но в итоге это съекономило уйму времени при доработке, отшлифовке и т.д.


 
КотКамышовый ©   (2006-10-05 17:03) [10]

Ну мне такой стиль нравится
таблицы рабочие: t_tablename или t_TableName
таблицы справочные d_tablename
хранимки sp_SPName
функции fn_FName
переменные @SomeVar
айдишки всякие Object_ID


 
Bless ©   (2006-10-05 17:22) [11]


> КотКамышовый ©   (05.10.06 17:03) [10]
>
> хранимки sp_SPName


Для MS SQL Server-а хранимки так называть не рекомендуется


 
Bless ©   (2006-10-05 17:27) [12]

It is strongly recommended that you do not create any stored procedures using sp_ as a prefix. SQL Server always looks for a stored procedure beginning with sp_ in this order:

The stored procedure in the master database.

The stored procedure based on any qualifiers provided (database name or owner).

The stored procedure using dbo as the owner, if one is not specified.

Therefore, although the user-created stored procedure prefixed with sp_ may exist in the current database, the master database is always checked first, even if the stored procedure is qualified with the database name.


 
Desdechado ©   (2006-10-06 11:18) [13]

Прилизительно так оформляю я:
CREATE OR REPLACE PROCEDURE PR_SAY_FULOBJNAME2(
 nObj      IN  PLS_INTEGER,
 lTypeBig  IN  VARCHAR2,
 lType     IN  VARCHAR2,
 cObjBig   OUT VARCHAR2,
 cObjSmall OUT VARCHAR2,
 lHasPorts OUT VARCHAR2 )
AS
 nOwner  PLS_INTEGER;
 nParent PLS_INTEGER;
 cStr1   VARCHAR2( 200 );
 cStr2   VARCHAR2( 30 );
 lParentHasPorts CHAR( 1 );
BEGIN
 -- главные характеристики объекта
 BEGIN
   SELECT N.obj_name, N.owner_id, N.parent_id,
          LocalText(C.class_aka), T.type_name, C.f_formscontname
     INTO cObjSmall, nOwner, nParent, cStr1, cStr2, lHasPorts
     FROM ObjNames N, ClassTypes T, Classes C
     WHERE N.obj_id = nObj AND N.type_id = T.type_id AND T.class_id = C.class_id;
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
     cObjBig := " ";
     cObjSmall := " ";
     lHasPorts := "F";
     RETURN;
 END;
 -- для не "портообразующего" объекта - короткое имя класса
 IF( lHasPorts = "F" ) THEN
   cObjSmall := cStr1 || " " || cObjSmall;
 END IF;
 -- чужой владелец
 IF( nOwner > 1 ) THEN
   SELECT owner_name
     INTO cStr1
     FROM Owners
     WHERE owner_id = nOwner;
   cObjSmall := cObjSmall || "(" || cStr1 || ")";
 END IF;
 -- марка только для не "портообразующего" объекта
 IF( ( lType = "T" ) AND ( lHasPorts = "F" ) ) THEN
   cObjSmall := cObjSmall || "(" || cStr2 || ")";
 END IF;
 -- при вложении объекта в другой его тоже расшифровать
 IF( NOT( nParent = 1 OR nParent = nObj ) ) THEN
   pr_SAY_FulObjName2( nParent, lTypeBig, lTypeBig, cStr1, cObjBig, lParentHasPorts );
   IF( lParentHasPorts = "T" ) THEN
     lHasPorts := "T";              -- все вложенные станут "портообразующими"
   END IF;
   IF( cStr1 <> " " ) THEN
     IF( lParentHasPorts = "T" ) THEN
       cObjSmall := cObjBig || "-" || cObjSmall;
       cObjBig := cStr1;
     ELSE
       cObjBig := cStr1 || " " || cObjBig;
     END IF;
   END IF;
 ELSE
   cObjBig := " ";
 END IF;
END PR_SAY_FULOBJNAME2;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.042 c
1-1161991895
Sp1r1t
2006-10-28 03:31
2006.12.10
Скажите плс. Как вывести список установленный программ?


2-1163691278
Lesorub
2006-11-16 18:34
2006.12.10
сокеты и web service


2-1164319075
Draught
2006-11-24 00:57
2006.12.10
При старте приложения показываются все формы


11-1140201303
Yurka R
2006-02-17 21:35
2006.12.10
Помогите начинающему в некоторых вопросах!


15-1164203150
Oleg Babenko
2006-11-22 16:45
2006.12.10
Нахождения нужной суммы из массива сумм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский