информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСтрашный баг в WindowsВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Меня терзают смутные сомненья... 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();
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach