Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Меня терзают смутные сомненья... 09.04.04 13:26 Число просмотров: 1372
Автор: Den <Денис Т.> Статус: The Elderman
|
Я конечно не писал на Си запросы через ODBC, но насколько мне помниться, параметр должен предваряться символом ?, а не @. Символ @ предваряет локальные переменные на самом сервере.
Попробуй со следующими изменениями:
String selectCmd = "SELECT * FROM Authors WHERE STATE=?STATE";
.
.
.
myCmd.SelectCommand.Parameters.Add(newOdbcParameter("STATE", OdbcType.VarChar, 2));
myCmd.SelectCommand.Parameters["STATE"].Value = "CA";
|
<programming>
|
[C#] Запросы с параметрами. 09.04.04 13:01
Автор: gh Статус: Незарегистрированный пользователь
|
Когда идет обращение к базе, Почему-то выдается ошибка: "Must declare the variable '@STATE'. "
Не пойму из-за чего.
Вот фрагмент программы:
String selectCmd = "SELECT * FROM Authors WHERE STATE=@STATE";
OdbcConnection myConnection = new OdbcConnection(
"Driver={SQL Server};Server=my_server;uid=sa;pwd=password;database=pubs");
OdbcDataAdapter myCmd = new OdbcDataAdapter(selectCmd, myConnection);
myCmd.SelectCommand.Parameters.Add( new OdbcParameter("@STATE", OdbcType.VarChar, 2) );
myCmd.SelectCommand.Parameters["@STATE"].Value = "CA";
DataSet ds = new DataSet();
myCmd.Fill(ds, "Authors");
MyDataGrid.DataSource= ds.Tables["Authors"].DefaultView;
MyDataGrid.DataBind();
Причем, когда все тоже самое делаю через SqlConnection, SqlDataAdapter и SqlParameter, то все работает без проблем.
Кто-нибудь встречался с подобной ошибкой?
Из-за чего такое может происходить?
|
|
Меня терзают смутные сомненья... 09.04.04 13:26
Автор: Den <Денис Т.> Статус: The Elderman
|
Я конечно не писал на Си запросы через ODBC, но насколько мне помниться, параметр должен предваряться символом ?, а не @. Символ @ предваряет локальные переменные на самом сервере.
Попробуй со следующими изменениями:
String selectCmd = "SELECT * FROM Authors WHERE STATE=?STATE";
.
.
.
myCmd.SelectCommand.Parameters.Add(newOdbcParameter("STATE", OdbcType.VarChar, 2));
myCmd.SelectCommand.Parameters["STATE"].Value = "CA";
|
| |
Проблема с пустыми полями... 12.04.04 11:03
Автор: gh Статус: Незарегистрированный пользователь
|
А как можно сделать запрос на обновление по всем строкам, в которых строковое поле Field2 пустое?
Я пробовал делать запрос "Update My_Table SET field0 = ?, field1 = ? WHERE field2=' ' ".
Но обновления не происходит, хотя ошибки не выдает. (Работаю с ACCESS-овской базой через ODBC-Command).
|
| | |
Update my_table set field0 = ?, field1 = ? where field2 is null 12.04.04 14:58
Автор: Den <Денис Т.> Статус: The Elderman
|
|
| |
Спасибо, Den. (только небольшая корректировка потребовалась). 09.04.04 13:37
Автор: gh Статус: Незарегистрированный пользователь
|
Вот рабочий вариант (кому интересно):
String selectCmd = "SELECT * FROM Authors WHERE STATE=?";
OdbcConnection myConnection = new OdbcConnection(
"Driver={SQL Server};Server=my_server;uid=sa;pwd=password;database=pubs");
OdbcDataAdapter myCmd = new OdbcDataAdapter(selectCmd, myConnection);
myCmd.SelectCommand.Parameters.Add( new OdbcParameter("@STATE", OdbcType.VarChar, 2) );
myCmd.SelectCommand.Parameters["@STATE"].Value = "CA";
DataSet ds = new DataSet();
myCmd.Fill(ds, "Authors");
MyDataGrid.DataSource= ds.Tables["Authors"].DefaultView;
MyDataGrid.DataBind();
|
|
|