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

Вниз

"Мусор" в полях типа text на БД Sybase   Найти похожие ветки 

 
Alex Kryuchkov   (2005-08-31 14:15) [0]

Здравствуйте!

Работаю в Delphi7BDESybase Adaptive Server Anywhere 8.0
При записи данных в поле типа text в нём кроме собственно введенного текста оказывается и всякий "мусор" - лишние символы (абсолютно разные).

Запись ведется из объекта TStringList в БД следующей командой:

S: TStringList;
Q: TQuery;
begin
........

Q.FieldByName("SomeTextField").AsString:=Trim(S.Text);
........
end;

Если, например, записываем значение "Мама мыла раму", то потом в таблице может оказаться нечто типа "Мама мыла раму МММММММююьбъх.,.//,"

Подскажите, в чем может быть проблема и как её обойти.

Заранее спасибо.


 
Val ©   (2005-08-31 14:30) [1]

что, при трассировке, в S.Text, при этом?


 
Johnmen ©   (2005-08-31 14:52) [2]

Что собой представляет поле типа text в сибейсе ?
Если это то, что я думаю, то проблема в методе записи в это поле, используя БДЕ. Надо писать не так, а через поток в блобфиелд.


 
Alex Kryuchkov   (2005-08-31 18:37) [3]

Отвечаю на оба вопроса.

1. При трассировке в S.Text имеем тот текст, который был введен пользователем. (S - это поле Lines объекта TMemo). Т.е. "мусора" там нет - только то, что ввели плюс разделители строк.

2. Поле text - это поле, которое может сожержать символьные данные неограниченной длины. Запись через БлобСтрим не помагает - мусор всё равно появляется. Кроме того, это же приложение абсолютно корректно работает на Оракле.
Мне кажется, что проблема связана либо с ОДБС-драйвером либо собственно с Сибейзом.


 
Val ©   (2005-08-31 19:01) [4]

как пишем и читаем с помощью стрима?


 
Alex Kryuchkov   (2005-09-01 11:46) [5]

С помощью стрима пишем так:
tmpStream:=TBlobStream.Create(TBlobField(QQ.FieldByName("SQLText")), bmReadWrite);
//для очистки потока (на всякий случай)
tmpStream.Seek(0, soFromBeginning);
tmpStream.Truncate;
//собственно запись в поле
DBMemo.Lines.SaveToStream(tmpStream);

На Оракле работало и без потока


 
Val ©   (2005-09-01 12:28) [6]

?
> На Оракле работало и без потока


тип поля разный в самой бд, судя по тому, что вы говорите.
размер потока соответсвует размеру содержимого мемо? как читаете все-таки?


 
Reindeer Moss Eater ©   (2005-09-01 14:08) [7]

Как обычно, наверное, в момент Post еще не убит экземпляр стрима.



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

Текущий архив: 2005.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
4-1124136597
freezzz
2005-08-16 00:09
2005.10.16
перевести с л дельфи на асм


2-1127192246
извращенец2
2005-09-20 08:57
2005.10.16
Как узнать имя компьютера


3-1125669985
jeka_t
2005-09-02 18:06
2005.10.16
Как в запросе указать условие отбора по дате с временем...


14-1127837338
Ученик чародея
2005-09-27 20:08
2005.10.16
Как идет сложение обыкновенных дробей?


2-1125911392
Антоний
2005-09-05 13:09
2005.10.16
Разбить несколько слов...