Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > memo, query и access


Автор: yogin 14.12.2009, 08:11
Добро дня.
при попытки занесения Memo1.Lines.Text в поле memo access'a вылетает ошибка о несоответствии типов полей... (с полем string тоже самое, но это я так, на всякий случай проверял)
вот собсно сам процесс заноса:
Код

q.SQL.Text := 'insert into tab1 (pole_memo)VALUES(:mem)';
q.Parameters.ParamByName('mem').Value := Memo1.Lines.Text;
q.ExecSQL;

как прально-то тогда надо?...
PS: неужто #10#13 заменять на другие символы при вносе, а при доставки из базы заменять обратно?...

Автор: Voxifer 14.12.2009, 11:36
Может надо не TMemo.Lines.Text, а Memo1.Lines.Text?

Автор: yogin 14.12.2009, 11:44
Цитата(Voxifer @ 14.12.2009,  11:36)
Может надо не TMemo.Lines.Text, а Memo1.Lines.Text?

да это я просто так написал. вопрос в силе.

Автор: Rodman 14.12.2009, 15:33
конкретно ошибку напиши

Автор: Teleport 14.12.2009, 18:08
Пробуй так
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Lines.Add('111');
  Memo1.Lines.Add('222');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 str: string;
begin
 with ADOQ1 do begin
   Active:= false;
   SQL.Clear;
   SQL.Add('INSERT INTO my_tab (my_memo_field) VALUES("' + Memo1.Text + '");');   //вносим данные без проблем
   ExecSQL;
   SQL.Clear;
   //проверяем внесенные данные
   SQL.Add('SELECT my_memo_field FROM my_tab WHERE my_memo_field= "' + Memo1.Text + '";');
   Active:= true;
   str:= FieldByName('my_memo_field').AsString;
   ShowMessage(str); //тут все выдает как надо - читает данные из таблички
 end;
end;

Автор: yogin 14.12.2009, 21:13
Цитата(Teleport @ 14.12.2009,  18:08)
Пробуй так

Во, спасибо, вот так всё нормуль.
Видимо .Lines.Text и .Text(TCaption) различаются форматами, что чувствительно для аксеса.

Автор: Teleport 15.12.2009, 01:28
Так тоже прокатывает:
Код

   SQL.Add('INSERT INTO my_tab (my_memo_field) VALUES("' + Memo1.Lines.Text + '");');


И так тоже прокатывает
Код

   SQL.Add('INSERT INTO my_tab (my_memo_field) VALUES(:mem);');
   Parameters.ParamByName('mem').Value:=  Memo1.Lines.Text ;


Просто Lines - я посчитал лишним писать. А где у тебя какая ошибка могла  возникнуть - понятия не имею.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)