powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при InsertSQL
21 сообщений из 21, страница 1 из 1
Ошибка при InsertSQL
    #38254588
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет! не как не могу сделать добавление в БД выдает ошибку

автор Parameter "DRS" does not exist in DataModule1.pFIBDataddDriver

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
With  DataModule1.pFIBDataddDriver do
begin
Close;
SelectSQL.Clear;
InsertSQL.Clear;
SQLs.SelectSQL.Text:='SELECT * FROM DRIVER';
SQLs.InsertSQL.Text:='INSERT INTO DRIVER (DR_SURNAME,DR_NAME,DR_OCHV,DR_SERIA,DR_NUMBER,DR_DATA,DR_NAMEAUTO,DR_N_AUTO,DR_N_AUTO_PR,DR_PHONE) ' +
'VALUES (:DRS,:DRN,:DRO,:DRSE,:DRNUM,:DRDD,:DRNAM,:DRAU,:DRNAU,:DRP)';
Open;
Insert;
ParamByName('DRS').AsString:=Edit1.Text;
ParamByName('DRN').AsString:=Edit2.Text;
ParamByName('DRO').AsString:=Edit3.Text;
ParamByName('DRSE').AsString:=Edit4.Text;
ParamByName('DRNUM').AsString:=Edit5.Text;
ParamByName('DRDD').AsDateTime:=JvDateEdit1.Date;
ParamByName('DRNAM').AsString:=Edit6.Text;
ParamByName('DRAU').AsString:=Edit7.Text;
ParamByName('DRNAU').AsString:=Edit8.Text;
ParamByName('DRP').AsString:=Edit9.Text;
Post;



что я делаю не так!?

зарание спс!!
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254591
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да забыл написать! использую delphi xe2 FIBPlus+EhLib
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254595
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в какой строке ошибка?
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254598
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11А в какой строке ошибка?


при нажатие добавить он выдает эту ошибку

Parameter "DRS" does not exist in DataModule1.pFIBDataddDriver

на строку не указывает

если запускаю debug то указывает на

First chance exception at $75EFC41F. Exception class Exception with message 'Parameter "DRS" does not exist in DataModule1.pFIBDataddDriver'.
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254604
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSMDEV,

имена параметров ищутся (и присваиваются им значения) в SelectSQL, где у вас нет параметров
Код: pascal
1.
SELECT * FROM DRIVER

Для вставки используйте присвоение полям датасета (ParamByName() заменить на FieldByName()), либо даже использовать отдельный Query-компонент именно для INSERT Тогда ваш код с минимальной переделкой заработает - переменные уже будут именно от INSERT
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254605
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешались кони, люди и залпы тысячи орудий
Код: pascal
1.
InsertSQL.ParamByName('DRS').AsString:=Edit1.Text;
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254610
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
arniSSMDEV,

имена параметров ищутся (и присваиваются им значения) в SelectSQL, где у вас нет параметров
Код: pascal
1.
SELECT * FROM DRIVER

Для вставки используйте присвоение полям датасета (ParamByName() заменить на FieldByName()), либо даже использовать отдельный Query-компонент именно для INSERT Тогда ваш код с минимальной переделкой заработает - переменные уже будут именно от INSERT

а можно поподробнее не понял тебя! что где и за чем
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254619
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSMDEVчто где и за чем
В документации. Чёрным по русски. Если используешь TIBDataSet.Insert, то работай с
полями , не параметрами. Use FieldByName, Luke!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254626
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался! один вопрос у меня DR_ID генерируется автоматически как его прописывать в FieldByName, а то он ругается на это поля
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254630
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSMDEVX11А в какой строке ошибка?


при нажатие добавить он выдает эту ошибку

Я вроде по-русски спросил.
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254645
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSMDEV> а то он ругается на это поля

Каким образом ругается - требует задать значение для required field ?
Если да, то вариантов несколько - установить у этого поля Required
в False (можно и в рантайм), задавать значение с клиента и т.д.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254820
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамSSMDEV> а то он ругается на это поля

Каким образом ругается - требует задать значение для required field ?
Если да, то вариантов несколько - установить у этого поля Required
в False (можно и в рантайм), задавать значение с клиента и т.д.



не все нормально! сделал так
Код: pascal
1.
FieldByName('DR_ID').Required := false;



другая ошибка появилась!

автор'DataModule1.pFIBDriveruses.InsertQuery:
The insert failed because a column definition includes validation constraints.Validation error for column DR_DATA, value "*** null ***".

хотя я поле даты заполняю и в DBGridEh1 запись появляется но не сохраняется! Почему? подскажите
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254827
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убери из INSERT`a и UPDATE`а поле DR_ID. Оно ведь заполняется на сервере? На клиенте его заполнять ненужно.
Или воспользоваться можно плюшками FIBPlus. См. свойства UpdateOptions + справку и примеры.
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38254880
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Убери из INSERT`a и UPDATE`а поле DR_ID. Оно ведь заполняется на сервере? На клиенте его заполнять ненужно.
Или воспользоваться можно плюшками FIBPlus. См. свойства UpdateOptions + справку и примеры.


DR_ID - генерируется сам

я его в клиенте и не заполняю вообще я только присвоил ему
Код: pascal
1.
FieldByName('DR_ID').Required := false;


а если не присваивать его то начинает ругаться на это поле

не много не понял тебя что надо убрать!
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38255063
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSMDEVя его в клиенте и не заполняю
И в этом - твоя ошибка. Если используешь ДБ-аварию, ты обязан заполнять это поле на
клиенте. Возможно, с помощью уже названных свойств.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38255729
SSMDEV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSSMDEVя его в клиенте и не заполняю
И в этом - твоя ошибка. Если используешь ДБ-аварию, ты обязан заполнять это поле на
клиенте. Возможно, с помощью уже названных свойств.



Да в том то и дело что я не как не могу понять как это работает! все говорят загадками. Пишу одну ошибку говорят про другое уже написал, что другая ошибка пишут про другое! и главное объяснить не кто не может! я не прошу вас писать за меня кот просто объяснить что я делаю не правильно.


где моя ошибка - если DR-ID должен заполняться сам за чем я его должен заполнять в клиенте?

Почему выдается ошибка в поле дата что там null хотя я его заполнил!
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #38255746
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SSMDEVДа в том то и дело что я не как не могу понять как это работает!
Тогда вдумчиво читай это: http://ibase.ru/devinfo/generator.htm
До просветления.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Ошибка при InsertSQL
    #39814469
ECMAScriptNinja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного другая ситуация. Делаю все верно(на фибах) не могу понять что не так.
Из формы передаю Id и STAT
далее выполняю при открытии формы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
procedure TfrGurnal_sop.FormShow(Sender: TObject);
var
SQL_text:String;
begin
  SQL_text:= 'and sa.nom_abon = :ID_ABON;';
  if(STAT = 1)then
  begin
  with frGurnal_sop.dsetData do
  begin
  close;
   SQLs.SelectSQL.Text:='select g.*, s.naim as N_CATEGORY,' + #13#10 +
'(select p.adres from bal_pc_adres(g.id_abon) p) as ADRES, k.naim_kod as N_COMMENT,' + #13#10 +
'sa.nom_abon, sa.kol_jil, sa.kol_lg,' + #13#10 + 
'(select max(z.date_dost) from bal_pr_zajvka z where z.id_abon=g.id_abon and coalesce(z.pr_ned,0)=0) as DATE_DOST,' + #13#10 +
'bs.naim as NAIM_SS' + #13#10 +
'from bal_gurnal_sop g' + #13#10 +
'inner join spr_sop s on (s.id=g.id_category)' + #13#10 +
'inner join bal_spr_abon sa on (sa.id=g.id_abon)' + #13#10 +
'inner join sp_punkt sp on (sp.kod_punkt=sa.kod_punkt)' + #13#10 +
'left outer join bal_spr_ss bs on (bs.kod=sp.kod_ss)' + #13#10 + 
'left outer join klsfct k on (k.kod=77) and k.kod_hc=g.stat_comment' + #13#10 + 
'where 1=1 ' +SQL_text;
   ParamByName(':ID_ABON').AsInteger:=ID_ABON;
  Open;
  end;
  end;
  if(STAT <> 1)then
  begin
  dsetData.Close;
  dsetData.Open;
   end;
  cxSOP.RestoreFromIniFile (ProgPath+'ini/gurnal_sop.ini', true , true ,[ gsoUseFilter ,  gsoUseSummary ], 'tmp_gurnal_sop');
  cxSOP.DataController.Filter.Clear;
end;



в итоге: parameter does not exist
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #39814473
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ECMAScriptNinja
Код: plsql
1.
ParamByName(':ID_ABON')


Двоеточие лишнее.
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #39814476
ECMAScriptNinja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ECMAScriptNinja,
Хорошая штука форум!!!
Сам задал вопрос,сам ответил("проговаривать в слух" и все сам поймешь.)

Ошибка заключалась что в строке:
Код: plsql
1.
ParamByName(':ID_ABON').AsInteger:=20911;


Надо убрать двоеточие.
Верная строка
Код: plsql
1.
ParamByName('ID_ABON').AsInteger:=20911;
...
Рейтинг: 0 / 0
Ошибка при InsertSQL
    #39814477
ECMAScriptNinja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanECMAScriptNinja
Код: plsql
1.
ParamByName(':ID_ABON')


Двоеточие лишнее.



Ага. Спасибо большое!
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при InsertSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]