Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизНепонятное поведение строк Найти похожие ветки
← →
Woolen © (2005-11-03 14:52) [0]В этом коде AsString возвращает все, что должен. В моем случае строку длинной 45 символов, но после где-то ~90 таких строк в QueryTxt начинает попадать всякая чушь. Ни ",", ни зачения из AsString больше там не появляется. В дельфи переодически помогают танцы с бубнами, но ни предварительная очистка, ни перенос переменной в глобальные не помогает.
Сейчас у меня создалось ощущение, что при превышении 4096 символов строку начинает глючить, хотя QueryTxt - это обычный string, который по документации обязан содержать 2 ГБ символов. В общем, я уже не знаю, что думаьб. Помогите, если кто в курсе. Спасибоif DocContFilled or DocTextFilled then
begin
QueryTxt := "QQQ in (" + FieldByName("QQQ").AsString;
Next;
while not Eof do
begin
QueryTxt := QueryTxt + "," + FieldByName("QQQ").AsString;
Next;
end;
QueryTxt := QueryTxt + ")";
← →
erika © (2005-11-03 14:57) [1]попробуй отсекать все запятые и по средством pos переходить на следующий символ, как вариант, возможно и не лучший
← →
Woolen © (2005-11-03 15:05) [2]Я, наверное, не достаточно хорошо объяснил. Я не ищу там символов, я их туда кладу, а они там не появляются. Вместо них появляется вся, что угодно, только не то, что надо.
← →
Гаврила © (2005-11-03 15:08) [3]Удалено модератором
← →
Digitman © (2005-11-03 15:17) [4]
> при превышении 4096 символов строку начинает глючить
да, это известный "глюк" встроенного отладчика
не обращай внимания, содержимое строки на самом деле то самое, что ты и ожидаешь
← →
Woolen © (2005-11-03 15:21) [5]Какая смета?
← →
Гаврила © (2005-11-03 15:23) [6]
> Какая смета?
Это я не то из буфферап вставил, сорри ))
← →
Woolen © (2005-11-03 15:27) [7]
> да, это известный "глюк" встроенного отладчика
>
> не обращай внимания, содержимое строки на самом деле то
> самое, что ты и ожидаешь
Спасибо.
Тогда возникает еще одна проблема: при отправке запроса в другую систему, она матерится и мне надо посмотреть содержимое этой строки (она и является параметрами запроса). Какие варианты есть, кроме ShowMessage?
← →
erika © (2005-11-03 15:29) [8]MessageDLG
← →
Digitman © (2005-11-03 15:40) [9]
> Какие варианты есть, кроме ShowMessage?
например, записать содержимое строки в файл и впоследствии анализировать его любым текст.редактором
с другой стороны, если речь идет (как я понял) о динамически формируемых текстах сиквэл-запросов, то на ту беду в многих пакетах компонентов доступа к СУБД есть компоненты а-ля SQLMonitor, позволяющие перехватывать тексты SQL-предложений непосредственно перд их отправкой СУБД-серверу
> при отправке запроса
нехилые у тебя "запросы" - по 4к и более) ... что ж за запросы-то такие ? прямо монстры какие-то) ...
ничего личного, просто любопытно ..
← →
Leonid Troyanovsky © (2005-11-03 16:15) [10]
> Digitman © (03.11.05 15:40) [9]
> нехилые у тебя "запросы" - по 4к и более) ... что ж за запросы-
> то такие ? прямо монстры какие-то) ...
http://groups.google.com/group/fido7.ru.delphi.db/msg/73690ec3d4363922
--
Regards, LVT.
← →
Ольга (2005-11-03 16:17) [11]Не помешало бы проверять FieldByName("QQQ").AsString на NULL
← →
Amoeba © (2005-11-03 16:33) [12]
> Ольга (03.11.05 16:17) [11]
> Не помешало бы проверять FieldByName("QQQ").AsString на
> NULL
Если NULL, то AsString покажет "", т.е. пустую строку.
← →
Ольга (2005-11-03 17:04) [13]Так и я об этом. В данной конструкции запроса это критично.
← →
Amoeba © (2005-11-03 18:59) [14]
> FieldByName("QQQ").AsString на NULL
Замечание относится лишь к тому что AsString имеет тип String, а не Variant и не может принимать значение NULL. Следовательно AsString можно проверить лищь на "", а если нужно на Null - то проверять AsVariant. Не надо "путать Бабеля с Бебелем".
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c