Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.447 c
3-1128048706
Извращенец2
2005-09-30 06:51
2005.11.20
Interbase 5.6 жрет память


2-1130599825
TStas
2005-10-29 19:30
2005.11.20
Относительные пути


4-1126843766
SergeyGood
2005-09-16 08:09
2005.11.20
Функция CreateProcessWithLogonW


2-1130959225
Sysanin
2005-11-02 22:20
2005.11.20
TServerSocket и TClietSocket


14-1130462615
Джо
2005-10-28 05:23
2005.11.20
Ох, нелегкая это работа...





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