Главная страница
    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.047 c
8-1146034876
Devider
2006-04-26 11:01
2006.12.10
Изменение размера изображения при видеозахвате.


15-1163739160
Ded
2006-11-17 07:52
2006.12.10
ЗАДАЧА


2-1164214839
Галинка
2006-11-22 20:00
2006.12.10
"Резинка" в c#


6-1153375981
BloodNV
2006-07-20 10:13
2006.12.10
Сокеты и события


2-1164052259
c0rben
2006-11-20 22:50
2006.12.10
Вопрос по компоненту TListBox





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский