Отсутствует описание параметра с номером 1.

This forum for Russian-speaking users

Отсутствует описание параметра с номером 1.

Postby eagor » 03 Mar 2018, 15:49

Здравствуйте

у меня C# / IB2007 dialect 1, IBProvider_prof_32-64_3.16.1.15012.exe

Вот такой первый SQL работает отдельно хорошо:
Code: Select all
insert into LogOper (IDLOGOPER,TIMEACTION,UserName,ComputerName,TableName,KINDACTION,KKINDACTION,NIDTABLE,NIDTABLE2,NIDTABLE3 ) values
(GEN_ID(logoper_IDLOGOPER_gen,1),'NOW','','','GPD','udalenie',2 ,:OLD_IDGP,:OLD_IDSI,:OLD_YEAR_ );

Вот такой второй SQL работает отдельно хорошо:
Code: Select all
delete from GPD   where IDGP = :OLD_IDGP and IDSI = :OLD_IDSI and YEAR_ = :OLD_YEAR_;


А вместе они

Code: Select all
insert into LogOper (IDLOGOPER,TIMEACTION,UserName,ComputerName,TableName,KINDACTION,KKINDACTION,NIDTABLE,NIDTABLE2,NIDTABLE3 ) values
(GEN_ID(logoper_IDLOGOPER_gen,1),'NOW','','','GPD','udalenie',2 ,:OLD_IDGP,:OLD_IDSI,:OLD_YEAR_ );
       
delete from GPD   where IDGP = :OLD_IDGP and IDSI = :OLD_IDSI and YEAR_ = :OLD_YEAR_;

вызывают ошибку "Отсутствует описание параметра с номером 1."
Что делать?
eagor
 
Posts: 5
Joined: 11 Jul 2009, 15:06

Re: Отсутствует описание параметра с номером 1.

Postby Kovalenko Dmitry » 03 Mar 2018, 17:27

Привет.

Это походу Вы через стандартный System.Data.OleDb работаете?

Не вдаваясь в подробности - попробуйте тоже самое через наш ADO.NET провайдер.

Я уверен, с ним проблем не возникнет.
Kovalenko Dmitry
Site Admin
 
Posts: 843
Joined: 17 Nov 2005, 20:51
Location: Russia, Lipetsk

Re: Отсутствует описание параметра с номером 1.

Postby eagor » 03 Mar 2018, 23:13

Вот это разве не .net провайдер?
Provider=LCPI.IBProvider.3;Data Source=xxx.gdb;Password=masterkey;Persist Security Info=True;User ID=SYSDBA;ctype=win1251;auto_commit=True
eagor
 
Posts: 5
Joined: 11 Jul 2009, 15:06

Re: Отсутствует описание параметра с номером 1.

Postby Kovalenko Dmitry » 04 Mar 2018, 00:26

Давненько это тема не поднималась :)

IBProvider - это OLE DB провайдер. Иными словами, набор COM-объектов. Это не ADO.NET Data провайдер.

Из .NET с IBProvider-ом работают через System.Data.OleDb или через наш ADO.NET провайдер для OLE DB, который совместим с System.Data.OleDb.

Provider=LCPI.IBProvider.3;Data Source=xxx.gdb;Password=masterkey;Persist Security Info=True;User ID=SYSDBA;ctype=win1251;auto_commit=True


В этой строке подключения вы указываете System.Data.OleDb.OleDbConnection имя (OLE DB) провайдера (Provider=LCPI.IBProvider.3), который нужно использовать для подключения к базе данных. Остальные параметры будут переданы в IBProvider.

System.Data.OleDb не умеет работать с именованными параметрами. А это необходимое условие для выполнения нескольких параметризованных запросов в рамках одной команды.

Поэтому я и сказал - предложил работать с IBProvider через наш ADO.NET провайдер. Вот небольшой документ с описанием -
http://www.ibprovider.com/rus/documenta ... ebird.html
Kovalenko Dmitry
Site Admin
 
Posts: 843
Joined: 17 Nov 2005, 20:51
Location: Russia, Lipetsk


Return to Russian users

Who is online

Users browsing this forum: No registered users and 1 guest

cron