Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при InsertSQL / 21 сообщений из 21, страница 1 из 1
13.05.2013, 00:25
    #38254588
SSMDEV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
Привет! не как не могу сделать добавление в БД выдает ошибку

автор 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
13.05.2013, 00:26
    #38254591
SSMDEV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
Да забыл написать! использую delphi xe2 FIBPlus+EhLib
...
Рейтинг: 0 / 0
13.05.2013, 00:35
    #38254595
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
А в какой строке ошибка?
...
Рейтинг: 0 / 0
13.05.2013, 00:38
    #38254598
SSMDEV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
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
13.05.2013, 00:51
    #38254604
arni
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
SSMDEV,

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

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

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

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

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


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

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

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

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.05.2013, 10:10
    #38254820
SSMDEV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
Гаджимурадов Рустам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
13.05.2013, 10:14
    #38254827
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
Убери из INSERT`a и UPDATE`а поле DR_ID. Оно ведь заполняется на сервере? На клиенте его заполнять ненужно.
Или воспользоваться можно плюшками FIBPlus. См. свойства UpdateOptions + справку и примеры.
...
Рейтинг: 0 / 0
13.05.2013, 10:41
    #38254880
SSMDEV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
X11Убери из INSERT`a и UPDATE`а поле DR_ID. Оно ведь заполняется на сервере? На клиенте его заполнять ненужно.
Или воспользоваться можно плюшками FIBPlus. См. свойства UpdateOptions + справку и примеры.


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

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


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

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



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


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

Почему выдается ошибка в поле дата что там null хотя я его заполнил!
...
Рейтинг: 0 / 0
13.05.2013, 20:18
    #38255746
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
SSMDEVДа в том то и дело что я не как не могу понять как это работает!
Тогда вдумчиво читай это: http://ibase.ru/devinfo/generator.htm
До просветления.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.05.2019, 10:42
    #39814469
ECMAScriptNinja
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
Немного другая ситуация. Делаю все верно(на фибах) не могу понять что не так.
Из формы передаю 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
17.05.2019, 10:45
    #39814473
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при InsertSQL
ECMAScriptNinja
Код: plsql
1.
ParamByName(':ID_ABON')


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

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


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


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



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


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