Помощь - Поиск - Пользователи - Календарь
Полная версия: Длинная строка в Paradox
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
YurKaluga
Есть у меня длинная строка (max 500 симв.). Ввод данных производится в TEdit. Потом эту строку нужно запихать в поле таблицы Paradox. По-всему получается, что подходящее поле - Memo. Но здесь возникает проблема: несовместимость типов!
Т.к. заполнение таблицы у меня идет в цикле, то нужно как-то сделать, или приведение типов, или что-то еще.
Помогите, пожалуйста.
Ozzя
Насколько я помню, тип alfa в Парадоксе макс. 255 символов. Значит, нужно работать с BLOB. И, соответственно, данные вносить в dbmemo.
YurKaluga
Цитата(Ozzя @ 16.03.2006 10:07) *

BLOB данные вносить в dbmemo.

В том-то и дело. Поле dbmemo есть (Query.Fields[5]), а при присваивании Query.Fields[5]:=TempStr выдает ошибку.
Ozzя
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
Немного не то, что нужно. Я забыл сказать, что вписываю данные через 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;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.