DmJ
@DmJ

Вызов процедуры с передачей параметров

после описания коннектов…
            try
            {
                connectionsql.Open();
                connectionfirebird.Open();

                cmdS.CommandText = "select ID_CASH from CAHS_TRANSACT";
                SqlDataReader reader;
                reader = cmdS.ExecuteReader();
                while (reader.Read())
                {
                    str = "execute procedure ART_DOC_INSERT (:ID_CASH, :DOCNUMB, :FLG)";
                    cmdF.CommandText = str;
                    cmdF.Parameters.Add("@ID_CASH", FbDbType.Integer).Value = reader.GetInt32(0);
                    cmdF.Parameters.Add("@DOCNUMB", FbDbType.BigInt).Value = DateTime.Now.ToString("yyMMddhhmm");
                    cmdF.Parameters.Add("@FLG", FbDbType.Integer).Value = "1";
                    try
                    {
                        cmdF.Prepare();
                        cmdF.ExecuteNonQuery();
                        cmdF.Parameters.Clear();
                    }
                    catch (Exception ex2)
                    {
                        Console.WriteLine(ex2.Message);
                        Console.ReadLine();
                    }
                }

выдает ошибку:
Dynamic SQL Error
SQL error code = -206
Column unknown
ID_CASH
At line 1, column 36
В чем моя ошибка? Спасибо!
  • Вопрос задан
  • 3297 просмотров
Пригласить эксперта
Ответы на вопрос 5
исходя из этого или вот этого код будет таким:

str = "execute procedure ART_DOC_INSERT (:ID_CASH, :DOCNUMB, :FLG)";
cmdF.CommandText = str;
cmdF.Parameters.Add("ID_CASH", FbDbType.Integer).Value = reader.GetInt32(0);
cmdF.Parameters.Add("DOCNUMB", FbDbType.BigInt).Value = DateTime.Now.ToString("yyMMddhhmm");
cmdF.Parameters.Add("FLG", FbDbType.Integer).Value = "1";


посмотрите, внимательно по приведенным ссылкам, может еще чего-нить полезного найдете )
Ответ написан
Комментировать
DmJ
@DmJ Автор вопроса
спасибо, по приведенным ссылкам, конечно, посмотрю, но Ваш код показывает ту же ошибку!
Ответ написан
Комментировать
текст процедуры приведите
Ответ написан
Комментировать
DmJ
@DmJ Автор вопроса
спасибо! разобрался сам.
вот так правильно:
str = «execute procedure ART_DOC_INSERT (@ID_CASH, @DOCNUMB, @FLG)»;
cmdF.CommandText = str;
cmdF.Parameters.Add(«ID_CASH», FbDbType.Integer).Value = reader.GetInt32(0);
cmdF.Parameters.Add(«DOCNUMB», FbDbType.BigInt).Value = DateTime.Now.ToString(«yyMMddhhmm»);
cmdF.Parameters.Add(«FLG», FbDbType.Integer).Value = «1»;
Ответ написан
Комментировать
вот и здорово! )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы