вызов хранимой процедуры

Тема в разделе ".NET", создана пользователем AnEi, 9 июн 2008.

  1. AnEi

    AnEi Гость

    в базе есть хранимая процедура
    [codebox]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
    ^[/codebox]

    она возвращает в out-параметры результаты несколько раз, в итоге получается таблица. подскажите, как ее правильно вызвать. пишу на языке C#
     
  2. pdp

    pdp Гость

    из синтаксиса мне кажется что это процедура для серверов Firebird/InterBase
    ее можно вызвать через провайдер Odbc следующим образом:
    [codebox]
    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;
    }[/codebox]
     
Загрузка...
Похожие Темы - вызов хранимой процедуры
  1. capitan-glue
    Ответов:
    0
    Просмотров:
    2.392
  2. k85
    Ответов:
    0
    Просмотров:
    355
  3. alexas1
    Ответов:
    0
    Просмотров:
    503
  4. Sanchezz86
    Ответов:
    1
    Просмотров:
    583
  5. vln1981
    Ответов:
    0
    Просмотров:
    700

Поделиться этой страницей