Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ ошибка memo

Автор: Крастb 13.03.2010 6:20

редактирую данные в мемо. но выдает ошибку "constant is not correct type (тут то что ввjдил в memo)"
помогите пожалуйста разобраться в чем дело
вот код:

procedure TForm7.CheckBox4Click(Sender: TObject);
var f: string; i:integer;
begin
For i:=1 to datamodule3.Table9.RecordCount do
begin
DataModule3.Table6.RecNo:=i;
end;
f:= DataModule3.query3.FieldByName('Primechanie').AsString;
if DataModule3.table9.Locate('Primechanie',F,[])=True then
begin
DataModule3.Table9.Edit;
DataModule3.Table9.fieldbyname('Primechanie').value:=memo1.lines.text;
DataModule3.Table9.Refresh;
DataModule3.Query3.Close;
DataModule3.Query3.Open;
showmessage('Информация изменена!');
memo1.lines.Text:='';
datamodule3.Table9.Close;
datamodule3.Table9.Open;
exit;
end;
end;

Автор: volvo 13.03.2010 6:35

Единственное, что приходит в голову - это сделать:

DataModule3.Table9.fieldbyname('Primechanie').AsString := memo1.text;
, то есть напрямую указать, что вводиться будет строка...

Автор: Крастb 13.03.2010 7:08

Цитата(volvo @ 13.03.2010 2:35) *

Единственное, что приходит в голову - это сделать:
DataModule3.Table9.fieldbyname('Primechanie').AsString := memo1.text;
, то есть напрямую указать, что вводиться будет строка...

ничего не изменилось, сообщение об ошибке по прежднему осталось

Добавлено через 3 мин.
вот может поможет чем нибудь, добавляю таким способом:
Код
procedure TForm8.BitBtn1Click(Sender: TObject);
var w: word;
begin
if dblookupcombobox2.text='' then
begin
showMessage('Вы не ввели мероприятие!');
exit;
end;
if dblookupcombobox1.text='' then
begin
showMessage('Вы не ввели ответственного!');
exit;
end;
W:=MessageDlg('Вы действительно хотите добавить мероприятие?',mtConfirmation,[mbYes,mbNo],0);
If W=mrYes then begin
DataModule3.table9.Append;
DataModule3.table9.FieldByName('Data_proved').AsDateTime:= DateTimePicker1.Date;
DataModule3.Table9.FieldByName('Kod_mer').AsInteger:=DBlookupCombobox1.KeyValue;
DataModule3.Table9.FieldByName('Kod_ch').AsInteger:=DBlookupCombobox2.KeyValue;
DataModule3.Table9.fieldbyname('Primechanie').value:=memo1.lines.text;
DataModule3.table9.Post;
DataModule3.Table9.Refresh;
DataModule3.Query2.Close;
DataModule3.Query2.Open;
memo1.Text:='';
end;
form8.close;

end;

Автор: volvo 13.03.2010 7:16

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

Value - это Variant Откуда я знаю, какая у тебя Дельфи, что за хреновину ты обозвал DataModule, и какой к этому метод доступа. Какой тип поля 'Primechanie', в конце концов. Может туда строка просто НЕ ВЛЕЗЕТ??? Без ответа на эти вопросы восстановить картину невозможно, значит исправлять программу - тебе самому. Дерзай.

Автор: Крастb 13.03.2010 7:22

Цитата(volvo @ 13.03.2010 3:16) *

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

Value - это Variant Откуда я знаю, какая у тебя Дельфи, что за хреновину ты обозвал DataModule, и какой к этому метод доступа. Какой тип поля 'Primechanie', в конце концов. Может туда строка просто НЕ ВЛЕЗЕТ??? Без ответа на эти вопросы восстановить картину невозможно, значит исправлять программу - тебе самому. Дерзай.

Делфи 6.
DataModule - это дата модуль. Там просто расположены тэйблы и датасорсы и квери
тип поля 'Primechanie' - memo
строка влезает, я 10 символов пишу


Добавлено через 3 мин.
и еще хочу узнать чем мой вариант добавление записей в бд плох? работает вроде хорошо и без сбоев. бд на парадоксе если что