Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
9:06:2008, 07:37
|
|
Новенький Группа: Новенький Сообщений: 12 Регистрация: 22:10:2007 Из: Гродно Пользователь №: 13 317 Репутация: 0
|
в базе есть хранимая процедура
CODE ALTER PROCEDURE DEC_CREATENAGRUZ_KAF( K_OTDELKAF INTEGER, YEARZAJAVKA SMALLINT) RETURNS ( K_OTDELF INTEGER, N_OTDELF VARCHAR(80), K_OTDELKF INTEGER, N_OTDELKF VARCHAR(80), NDISC VARCHAR(45), SHIFR_ALL VARCHAR(100), N_VOB VARCHAR(5), SEM_ALL VARCHAR(100), KLB_ALL INTEGER, KLP_ALL INTEGER, CGROUP_ALL INTEGER, PGROUP_ALL INTEGER, IGROUP_ALL INTEGER, L_ALL INTEGER, P_ALL INTEGER, LAB_ALL INTEGER, IND_ALL INTEGER, KONT_ALL INTEGER, ZAL_ALL INTEGER, ZALD_ALL INTEGER, EKZ_ALL INTEGER, DIP_ALL INTEGER, DR_ALL INTEGER, KDZAL NUMERIC(15,2), KZAL NUMERIC(15,2), KEKZ NUMERIC(15,2), KKONS NUMERIC(15,2), KKOND NUMERIC(15,2), KKONZ NUMERIC(15,2), KKPR1_6 NUMERIC(15,2), KKPR7_20 NUMERIC(15,2), SROK NUMERIC(15,2)) AS begin k_otdelkf=k_otdelkaf; select n_otdel from xotdel where k_otdel=:k_otdelkaf into :n_otdelkf; For Select k_otdel, n_otdel from xotdelshtat_fakult(cast('01.09.'||cast(:yearzajavka as varchar(4))as Date)) where kv_otdel=2 into :k_otdelf, :n_otdelf do begin For Select NDISC, SHIFR_ALL, N_VOB, SEM_ALL, KLB_ALL, KLP_ALL, CGROUP_ALL, PGROUP_ALL, IGROUP_ALL, L_ALL, P_ALL, LAB_ALL, IND_ALL, KONT_ALL, ZAL_ALL, ZALD_ALL, EKZ_ALL, DIP_ALL, DR_ALL, KDZAL, KZAL, KEKZ, KKONS, KKOND, KKONZ, KKPR1_6, KKPR7_20, SROK FROM DEC_CREATENAGRUZ(:k_otdelf, :k_otdelkaf, :yearzajavka) into :NDISC, :SHIFR_ALL, :N_VOB, :SEM_ALL, :KLB_ALL, :KLP_ALL, :CGROUP_ALL, :PGROUP_ALL, :IGROUP_ALL, :L_ALL, :P_ALL, :LAB_ALL, :IND_ALL, :KONT_ALL, :ZAL_ALL, :ZALD_ALL, :EKZ_ALL, :DIP_ALL, :DR_ALL, :KDZAL, :KZAL, :KEKZ, :KKONS, :KKOND, :KKONZ, :KKPR1_6, :KKPR7_20, :SROK do begin suspend; end end end ^ она возвращает в out-параметры результаты несколько раз, в итоге получается таблица. подскажите, как ее правильно вызвать. пишу на языке C# |
|
Сообщение
#1
|
|
![]() |
|
|
9:06:2008, 08:12
|
|
============== Группа: Модеры Сообщений: 2 187 Регистрация: 11:01:2007 Пользователь №: 8 750 Репутация: 29
|
Через какой провайдер работаете?
|
|
Сообщение
#2
|
|
|
|
10:06:2008, 07:43
|
|
Новенький Группа: Новенький Сообщений: 3 Регистрация: 3:04:2008 Пользователь №: 16 363 Репутация: 0
|
из синтаксиса мне кажется что это процедура для серверов Firebird/InterBase
ее можно вызвать через провайдер Odbc следующим образом: CODE public DataSet GetDataSetFromDEC_CREATENAGRUZ_KAF() { DataSet ds = new DataSet(); // string connStrSaoz = "Dsn=DatabaseDNS;Driver={Firebird/InterBase® driver};dbname=10.13.2.25:D:\ourwork\Database\DatabaseName.gdb;charset=NONE;uid=sysdba; Password=masterkey;"; OdbcConnection con = new OdbcConnection(connStrSaoz); OdbcDataAdapter da = new OdbcDataAdapter("select * from DEC_CREATENAGRUZ_KAF", con); da.SelectCommand.CommandType = CommandType.Text; // Fill the DataSet. try { con.Open(); da.Fill(ds); } catch (Exception) { throw new ApplicationException("Data error."); } finally { if (con.State == ConnectionState.Open) con.Close(); } return ds; } |
|
Сообщение
#3
|
|
![]() |
|
Текстовая версия | Сейчас: 7:10:2008 - 10:19 |