YurKaluga
16.03.2006 12:44
Есть у меня длинная строка (max 500 симв.). Ввод данных производится в TEdit. Потом эту строку нужно запихать в поле таблицы Paradox. По-всему получается, что подходящее поле - Memo. Но здесь возникает проблема: несовместимость типов!
Т.к. заполнение таблицы у меня идет в цикле, то нужно как-то сделать, или приведение типов, или что-то еще.
Помогите, пожалуйста.
Насколько я помню, тип alfa в Парадоксе макс. 255 символов. Значит, нужно работать с BLOB. И, соответственно, данные вносить в dbmemo.
YurKaluga
16.03.2006 13:12
Цитата(Ozzя @ 16.03.2006 10:07)
BLOB данные вносить в dbmemo.
В том-то и дело. Поле dbmemo есть (Query.Fields[5]), а при присваивании Query.Fields[5]:=TempStr выдает ошибку.
DRKB
Код
Как записать в BLOB поле большой текст (более 255)?
var
S: TBlobStream;
B: pointer;
c: integer;
...
Table1.Edit;
S := TBlobStream.Create(Table1BlobField as TBlobField, bmWrite); {кажется, так}
C := S.write(B, C);
Table1.Post;
S.Destroy;
или так
var
S: TMemoryStream;
B: pointer;
C: integer;
...
S := TMemoryStream.Create;
...
Table1.Edit;
S.Clear;
S.SetSize(C);
C := S.write(B,C);
(Table1BlobField as TBlobField).LoadFromStream(S);
S.Clear;
Table1.Post;
...
S.Destroy;
Взято с http://delphiworld.narod.ru
YurKaluga
16.03.2006 13:29
Немного не то, что нужно. Я забыл сказать, что вписываю данные через SQL-запрос. Каюсь!
Вот текст:
Код
Query_Segm.SQL.Text:='Select * from Segment_'+Segm+'.db where';
Query_Segm.SQL.Add('(Code_Of_Dog='+IntToStr(Dog_Code)+') and');
For i:=0 to Field_Count-2 do
Query_Segm.SQL.Add('('+Query_Segm.Fields[i+2].FieldName+'="'+Temp_Array[i]+'") and');
Query_Segm.SQL.Add('('+Query_Segm.Fields[i+2].FieldName+'="'+Temp_Array[Field_Count-1]+'")');
Query_Segm.Active:=true;