Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.20;
Скачать: CL | DM;

Вниз

Непонятное поведение строк   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.04 c
2-1130674682
AndrewLi
2005-10-30 15:18
2005.11.20
Компонент Memo и изъятие содержимого определенной строчки


2-1131083532
Gia
2005-11-04 08:52
2005.11.20
DBEdit


4-1127119948
Ландграф Павел
2005-09-19 12:52
2005.11.20
узнать с какими правами запустили программу


2-1131011038
VIB
2005-11-03 12:43
2005.11.20
TObject


14-1130328203
Антоний
2005-10-26 16:03
2005.11.20
Удаленное администрирование локальной сети