Re[2]: символ CHR(0) в середине длинной строки, FireBird1/OD
От: Oleg A. Bachin Украина  
Дата: 21.12.04 12:26
Оценка:
Здравствуйте, Softwarer, Вы писали:

S>Здравствуйте, Grinin, Вы писали:


S>Вообще необходимость странная — имхо, проще найти способ сделать правильно.


S>Если таки хочется в лоб — полагаю, надо плясать от того факта, что в AnsiString в принципе можно впихнуть нулевые символы. У AnsiString есть длина (которая устанавливается, например, SetLength) и есть содержимое (которое, в принципе, может содержать нули внутри). Вопрос в том — как идет работа с этими данными; код, который ориентируется на результат функции Length — работает. То есть, если Вы сформируете строку через SetLength/Move, а потом присвоите ее полю — может сработать.


не в ту сторону копаем имхо...
насколько я помню ODBC, там есть 2 варианта как передавать строку
БиндЧегоТоТам(ХендлСтейтмента, НомерПараметра, Тип, ...., УказательНаДанные,
а вот дальше:
1. -3 (мо-моему) до нул-терминейта
2. длина строки
ну или там 0 — это и есть нулл-валюе... (т.е. для того чтобы указать нул, не нужно чтобы данные были нул — нужна нулевая длина)...

так что тут делфи ни при чем впрочем как и птица и ODBC.
смотри свою реализацию Bind....
Best regards,
Oleg A. Bachin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.