Каждый здесь всегда оказывал такую большую помощь, прямо или косвенно. И с большой надеждой, что это, опять же, звучит правдоподобно.
Для ясности, хранимая процедура работает под FireBird, а VB относится к .NET-разновидности
У меня есть хранимая процедура (отрывок ниже, важный бит ГДЕ)
select pn, pnm.description, si_number, entry_date, cmp_auto_key,
parts_flat_price, labor_flat_price, misc_flat_price, woo_auto_key,
wwt_auto_key
from parts_master pnm, wo_operation woo
where pn like :i_pn || '%'
and pnm.pnm_auto_key = woo.pnm_auto_key
into :pn, :description, :work_order, :entry_date, :cmp, :parts_price,
:labor_price, :misc_price, :woo, :wwt
Я пытаюсь передать параметр из приложения vb, которое использует параметр I_PN, код которого приведен ниже (переменные для MyServer и MyPassword определены в более ранней части кода.)
Try
Dim FBConn As New FirebirdSql.Data.FirebirdClient.FbConnection()
Dim FBCmd As FirebirdSql.Data.FirebirdClient.FbCommand
Dim MyConnectionString As String
MyConnectionString = _
"datasource=" & MyServer & ";database=" & TextBox4.Text & "; & _
user id=SYSDBA;password=" & MyPassword & ";initial catalog=;"
FBConn = New FirebirdSql.Data.FirebirdClient. & _
FbConnection(MyConnectionString)
FBConn.Open()
FBConn.CreateCommand.CommandType = CommandType.StoredProcedure
FBCmd = New FirebirdSql.Data.FirebirdClient. & _
FbCommand("WIP_COSTS", FBConn)
FBCmd.CommandText = "WIP_COSTS"
FBConn.CreateCommand.Parameters. & _
Add("@I_PN", FirebirdSql.Data.FirebirdClient.FbDbType.Text). & _
Value = TextBox1.Text
Dim I_PN As Object = New Object()
Me.WIP_COSTSTableAdapter.Fill(Me.WOCostDataSet.WIP_COSTS, @I_PN)
FBConn.Close()
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
Когда я запускаю VB.App и пытаюсь запустить программу, я получаю следующую ошибку:
Ошибка динамического SQL
Код ошибки SQL = -206
Столбец Неизвестный
I_PN
В строке 1, столбец 29
И я не могу понять, в чем проблема. То есть я не знаю, неверна ли моя логика на стороне VB или на хранимой процедуре.
Любое включенное кодирование объединяется из примеров, которые я обнаружил, с различными фрагментами кода, найденными во время длительного пребывания в GoogleFu.
Как любой, у кого есть опыт работы с VB более месяца или двух (в отличие от меня), может засвидетельствовать лишь один взгляд - мой код, вероятно, довольно дрянной и не очень хорошо сформирован - конечно, не изящен и, несомненно, работает. Я, конечно, развлекаю все советы с распростертыми объятиями.
Как обычно, если у вас есть дополнительные вопросы, я отвечу на них в меру своих возможностей.
Еще раз спасибо.
Jasoomian