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

Вниз

Наитупей6ий вопрос   Найти похожие ветки 

 
xroot   (2006-03-10 00:44) [0]

Вот сижу значит и пишу SQL запрос, написал, врубил в SQL. Все нормально. НО... При попытке программно присвоить SQL.Text данный запрос вылетает ошибка типа
[Error] Unit_FormMain.pas(74): String literals may have at most 255 elements
Логично, 4то string до 255, но делить запрос на части и клеить их + тоже не хо4ется.
AnsiString и WideString держут до 2Gb, но как правильно переформатить их?
То есть:
var
 WideSQL: widestring;
begin
WideSQL := ......
SQL.TEXT := String(WideSQL);
end;

Не проходит! Помогите!


 
palva ©   (2006-03-10 00:50) [1]

А если убрать кастинг String, и оставить только присваивание, типа
SQL.TEXT := WideSQL;
Неужели не пройдет?


 
xroot   (2006-03-10 00:53) [2]

Труба вылетает при:

WideSQL := ......


 
Defunct ©   (2006-03-10 00:57) [3]

String тоже до 2Gb читайте справку..

var
 Str : String;

begin
 Str := ".....";
 SQL.Text := Str;


 
xroot   (2006-03-10 01:18) [4]

Я не совсем понял. Даже если обычный стринг до 2Gb, как ему присвоить строку более 255 символов. Т.к. при присвоении
Str := ".....";
Вылетает
[Error] Unit_FormMain.pas(74): String literals may have at most 255 elements
Я конечно не знаток английского, но тут вроде написано: не более 255 эл-тов.


 
Джо ©   (2006-03-10 01:25) [5]

> [4] xroot   (10.03.06 01:18)

Так таким строковым константам и не место в непосредственном коде :) Вынеси его в отдельный файл и загружай в переменную :)


 
xroot   (2006-03-10 02:03) [6]

Блин, тут вообще кто-то вопросы читает? Пишу: как переформатировать в стринг. Загрузить из файла... Это то же, 4то и получить SQL.Text из базы данных или скачать драйвера для модема с сайта производителя!


 
Defunct ©   (2006-03-10 02:04) [7]

xroot   (10.03.06 02:03) [6]

Str := "dsfsdfsdf"+
       "zzzzzzzz"+
       ".............."+
       "dfsdfdf"+ ...


Фирштейн?


 
Джо ©   (2006-03-10 02:06) [8]

> [6] xroot   (10.03.06 02:03)
> Блин, тут вообще кто-то вопросы читает?

Читают.

> Пишу: как переформатировать в стринг.

Что такое "переформатировать в стринг"?

Остальную часть реплики не понял.


 
Джо ©   (2006-03-10 02:06) [9]

> При попытке программно присвоить SQL.Text данный запрос
> вылетает ошибка типа
> [Error] Unit_FormMain.pas(74): String literals may have
> at most 255 elements

Это прямая неправда.


 
Германн ©   (2006-03-10 02:58) [10]

2 xroot   (10.03.06 02:03) [6]


> Джо ©   (10.03.06 02:06) [9]
>
> > При попытке программно присвоить SQL.Text данный запрос
>
> > вылетает ошибка типа
> > [Error] Unit_FormMain.pas(74): String literals may have
>
> > at most 255 elements
>
> Это прямая неправда.


Я бы даже назвал это не "неправдой", а наглым враньём! В лучшем случае, полным непониманием сути вещей.
> [Error] Unit_FormMain.pas(74): String literals may have
> at most 255 elements - это сообщение компиллятора, а компиллятор сообщает что-то на этапе компилляции, но уж никак не в рантайме!

По сути сабжа. String literals - это набор символов (строка) в тексте программы. Именно в тексте, т.е. если рассматривать pas-файл как текст, то это набор символов (строка) от его(её) начала до символов LF/CR.
Можно ввести более длинную строку используя символ конкатенации(суммирование строк) "+".

А вообще, я не понимаю сего ограничения на длину строки в pas-файле!
А уж то, что, якобы, компиллятор Дельфи, написан на С - тем более. :)


 
Джо ©   (2006-03-10 03:01) [11]

> [10] Германн ©   (10.03.06 02:58)
> А вообще, я не понимаю сего ограничения на длину строки
> в pas-файле!

А это чтобы не наглели! :0)


 
Германн ©   (2006-03-10 03:09) [12]


> Джо ©   (10.03.06 03:01) [11]
>
> > [10] Германн ©   (10.03.06 02:58)
> > А вообще, я не понимаю сего ограничения на длину строки
>
> > в pas-файле!
>
> А это чтобы не наглели! :0)


Эт точно!
Токмо ведь это и тебя касается, Серёга! Не чувствуешь себя обделённым?


 
Джо ©   (2006-03-10 03:46) [13]

> [12] Германн ©   (10.03.06 03:09)
> Эт точно!
> Токмо ведь это и тебя касается, Серёга! Не чувствуешь себя
> обделённым?

Иногда бывает. Выпью — и попускает. Начинаю опять втискивать себя в прокрустово ложе 80 символов по горизонтали :)


 
ЮЮ ©   (2006-03-10 03:49) [14]


> но делить запрос на части и клеить их + тоже не хо4ется.


А придется. Код, если к нему относиться уважительно при написании, вообще не должен вылазить за 81 колонку (серая полоса в редакторе кода - для красоты что ли нарисована?). И как читать твой запрос потом? SQL код в программе должен быть так же лекгочитаем и форматирован, как и код самой программы.
Например:
 sql :=
   "SELECT llg.*, ISNULL(ug.NAME, mug.NAME) GroupName, wp.ID WorkPlan " +
   "FROM "+
     "( SELECT " +
         "LoadLine , gsg.UGroup, NULL SuperGroup, sg.ID SubGroup," +
         "GroupSubGroup, SubGroupCount,  SubGroupIndex,  BudgetRatio," +
         "PayRatio " +
       "FROM" +
         "S_SubGroups sg " +
         "LEFT JOIN S_GroupSubGroups gsg ON sg.GroupSubGroup = gsg.ID " +
       "WHERE "
         "LoadLine IN (SELECT ID FROM S_loadLines WHERE [load] = :LoadID) " +
       "UNION " +
       "SELECT " +
         "LoadLine , ig.UGroup, sg.ID SuperGroup, NULL," +
         "NULL, NULL, NULL , NULL, NULL " +
       "FROM " +
         "S_SuperGroups sg " +
         "LEFT JOIN S_IncludedGroups ig ON sg.ID = ig.SuperGroup " +
       "WHERE " +
         "LoadLine IN (SELECT ID FROM S_loadLines WHERE [load] = :LoadID)" +
     ") llg " +
     "LEFT JOIN U_GROUPS ug on llg.Ugroup = ug.ID " +
     "LEFT JOIN U_GROUPS mug on ug.Ugroup = mug.ID " +
     "LEFT JOIN U_WorkPlans wp on wp.ID = ISNULL(ug.WorkPlan, mug.WorkPlan) " +
   "ORDER BY LoadLine, SuperGroup, SubGroup, llg.UGroup"



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

Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.046 c
2-1141996920
Fenix
2006-03-10 16:22
2006.03.26
Преобразование названия цветов


3-1138718238
Mac_
2006-01-31 17:37
2006.03.26
Как сохранить результат запроса в dbf формате ?


15-1141401440
ZeFiR
2006-03-03 18:57
2006.03.26
Rag Doll Kung Fu


15-1141480795
постигаю
2006-03-04 16:59
2006.03.26
окно


15-1141390901
keal
2006-03-03 16:01
2006.03.26
8 марта





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