Помогите!! странный глюк....
От: kazanova  
Дата: 08.04.03 06:30
Оценка:
Ситуация такая: есть 2 формы, DataModule. На первой есть кнопка, при нажатии на не открывается форма для добавления нового материала. По нажатию на кнопку"Добавить" на это форме вырабатывается ошибка.
Что делать?
Код обработчика нажатия кнопки "Добавить":

procedure TForm3.BitBtn1Click(Sender: TObject);
begin
DataModule5.Query2.SQL.Add('INSERT INTO mat (nm_m,kod_m) VALUES (:nm, :kod)');
DataModule5.Query2.Params.Clear;
DataModule5.Query2.Params.ParseSQL(DataModule5.Query2.SQL.Text, true);
DataModule5.Query2.Params.ParamByName('kod').Value:= Form3.Edit1.Text;
DataModule5.Query2.Params.ParamByName('nm').Value:=Form3.Edit2.Text;

DataModule5.Query2.ExecSQL;//--------------здесь видимо ошибка
end;


Ошибка:

Project Project1.exe raised exception class EDBengineError with message 'Invalid use of keyword. Token INSERT line: 2'



Что посоветуете спецы??? Может есть какой-нибудб альтернативный способ добавления новой записи?
Re: Помогите!! странный глюк....
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.04.03 06:40
Оценка:
Здравствуйте, kazanova, Вы писали:

K>Ситуация такая: есть 2 формы, DataModule. На первой есть кнопка, при нажатии на не открывается форма для добавления нового материала. По нажатию на кнопку"Добавить" на это форме вырабатывается ошибка.

K>Что посоветуете спецы???
Попробуй добавить выделенную строку:

procedure TForm3.BitBtn1Click(Sender: TObject);
begin
  DataModule5.Query2.SQL.Clear;
  DataModule5.Query2.SQL.Add('INSERT INTO mat (nm_m,kod_m) VALUES (:nm, :kod)');
  DataModule5.Query2.Params.Clear;
  DataModule5.Query2.Params.ParseSQL(DataModule5.Query2.SQL.Text, true);
  DataModule5.Query2.Params.ParamByName('kod').Value:= Form3.Edit1.Text;
  DataModule5.Query2.Params.ParamByName('nm').Value:=Form3.Edit2.Text;
  DataModule5.Query2.ExecSQL;//--------------здесь видимо ошибка
end;
... << RSDN@Home 1.0 beta 6 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Помогите!! странный глюк....
От: kazanova  
Дата: 08.04.03 07:00
Оценка:
Здравствуйте, Sinclair, Вы писали:

Увы не помогает и ошибка опять в той же строке(

Ошибка:'Type mismatch in expression'
Re: Помогите!! странный глюк....
От: serjhp  
Дата: 08.04.03 07:11
Оценка:
Здравствуйте, kazanova, Вы писали:

K>Что посоветуете спецы??? Может есть какой-нибудб альтернативный способ добавления новой записи?


У тебя не совпадение типов в Params, т.е. в таблице Params[0] у тебя описан как integer(возможно и другой тип) а ты ей пытаешся присвоить String.
Re[3]: Помогите!! странный глюк....
От: _MarlboroMan_ Россия  
Дата: 08.04.03 07:16
Оценка:
Здравствуйте, kazanova, Вы писали:

K>Увы не помогает и ошибка опять в той же строке(


очистку коллекции параметров поставить после очистки текста запроса.
parsesql — выкинуть. ибо используя его ты заменяешь именованые параметры на "?"

попробуй...
... << RSDN@Home 1.0 beta 6a >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[2]: Помогите!! странный глюк....
От: kazanova  
Дата: 08.04.03 07:16
Оценка:
Здравствуйте, serjhp, Вы писали:

K>>Что посоветуете спецы??? Может есть какой-нибудб альтернативный способ добавления новой записи?

S>У тебя не совпадение типов в Params, т.е. в таблице Params[0] у тебя описан как integer(возможно и другой тип) а ты ей пытаешся присвоить String.


что делать, я новичок в Delphi....
Re[2]: Помогите!! странный глюк....
От: _MarlboroMan_ Россия  
Дата: 08.04.03 07:18
Оценка:
Здравствуйте, serjhp, Вы писали:

S>У тебя не совпадение типов в Params, т.е. в таблице Params[0] у тебя описан как integer(возможно и другой тип) а ты ей пытаешся присвоить String.


это нормально, ибо работа идет с Variant.

кинь, плиз, текст запроса после присвоения параметров (до попытки его выполнить)...
... << RSDN@Home 1.0 beta 6a >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[3]: Помогите!! странный глюк....
От: kazanova  
Дата: 08.04.03 07:29
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:

_MM_>кинь, плиз, текст запроса после присвоения параметров (до попытки его выполнить)...



procedure TForm3.BitBtn1Click(Sender: TObject);
begin
  DataModule5.Query2.SQL.Clear;
  DataModule5.Query2.SQL.Add('INSERT INTO mat (nm_m,kod_m) VALUES (:nm, :kod)');
  DataModule5.Query2.Params.Clear;
  DataModule5.Query2.Params.ParseSQL(DataModule5.Query2.SQL.Text, true);
  DataModule5.Query2.Params.ParamByName('kod').Value:= Form3.Edit1.Text;
  DataModule5.Query2.Params.ParamByName('nm').Value:=Form3.Edit2.Text;

  DataModule5.Query2.ExecSQL;
end;
Re[3]: Помогите!! странный глюк....
От: serjhp  
Дата: 08.04.03 07:35
Оценка:
Здравствуйте, kazanova, Вы писали:

K>Здравствуйте, serjhp, Вы писали:


K>>>Что посоветуете спецы??? Может есть какой-нибудб альтернативный способ добавления новой записи?

S>>У тебя не совпадение типов в Params, т.е. в таблице Params[0] у тебя описан как integer(возможно и другой тип) а ты ей пытаешся присвоить String.

K>

K>что делать, я новичок в Delphi....
В Query5.Params[0].DataType:=ftString;
Query5.Params[1].DataType:=ftString;
перед тем как присваивать!
Re[4]: Помогите!! странный глюк....
От: kazanova  
Дата: 08.04.03 07:52
Оценка:
Здравствуйте, serjhp, Вы писали:

S>Здравствуйте, kazanova, Вы писали:


K>>Здравствуйте, serjhp, Вы писали:


K>>>>Что посоветуете спецы??? Может есть какой-нибудб альтернативный способ добавления новой записи?

S>>>У тебя не совпадение типов в Params, т.е. в таблице Params[0] у тебя описан как integer(возможно и другой тип) а ты ей пытаешся присвоить String.

K>>

K>>что делать, я новичок в Delphi....
S>В Query5.Params[0].DataType:=ftString;
S> Query5.Params[1].DataType:=ftString;
S>перед тем как присваивать!
ошибка Неописанный идентификатор ftString, что делать?
Re[4]: Помогите!! странный глюк....
От: _MarlboroMan_ Россия  
Дата: 09.04.03 01:38
Оценка:
Здравствуйте, kazanova, Вы писали:

K>Здравствуйте, _MarlboroMan_, Вы писали:


_MM_>>кинь, плиз, текст запроса после присвоения параметров (до попытки его выполнить)...


не текст программы, а содержимое поля SQL у твоего квери.
... << RSDN@Home 1.0 beta 6a >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.