Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Параметризированный запрос / 6 сообщений из 6, страница 1 из 1
06.09.2006, 12:29
    #33967630
Katt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризированный запрос
Здраствуйте.
Использую ODBC драйвер для postgres 8.1.x (.NET 2.0).
Пытаюсь передать запросу параметр
Код: plaintext
1.
2.
3.
SELECT *
FROM table1
WHERE field1=@p
Пробовала %p% и "@p" и т.д....
Описываю,как в Tutorial при этом Parameter в свойствах TableAdapter, и:
Код: plaintext
1.
2.
Error in Where clause near '@'.
Unable to parse query text. 
...
Рейтинг: 0 / 0
06.09.2006, 12:40
    #33967682
AlEXoFo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризированный запрос
Для ODBC драйверов необходимо указывать параметр в виде '?'
например

SELECT *
FROM table1
WHERE field1=?

Если параметров несколько, то необходимо все параметры указывать именно так, причем задавать параметры самой команде необходимо в том порядке, в котором они перечисляются.

Примечание:
Например можно создать SqlDataAdapter для таблицы, находящейся в SqlServer'е, он сам сгенерирует команды Select, Update, Insert и Delete
Однако это не прокатывает для ODBC таблиц, поэтому посмотреть как правильно сгенерировать команду не удастся. Выход один - если очень интересно, то поэкспериментируйте с таблицей точно такой же только на SqlServer, сгенерируйте команды SqlDataAdapter'ом, а затем поменяйте все @parametr'ы на вопросики '?', названия параметров уберите вообще. Вот вам и готовые команды для вашего adapter'a :)Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться :)
...
Рейтинг: 0 / 0
06.09.2006, 12:42
    #33967691
AlEXoFo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризированный запрос
Кстати на SQLServer'е надо будет задать поле id (IDENTITY), если такового не имеется, а то тоже не прокатит.
Если каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться :)
...
Рейтинг: 0 / 0
06.09.2006, 12:48
    #33967713
mclabman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризированный запрос
Используй .Net версию. Работает.
using Npgsql;
using NpgsqlTypes;
...
NpgsqlCommand cmd = new NpgsqlCommand();
cmd.Connection = connection;
cmd.CommandText = "select * from \"insurance_contracts\" where id = @pId";
cmd.Parameters.Add("pId", insuranceContractId);
...
...
Рейтинг: 0 / 0
06.09.2006, 12:59
    #33967764
Katt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризированный запрос
Спасибо, работает со всеми 5ью! :)
А как быть,если один (посередине) из параметров - опускается? Null'ом же его не задашь!
...
Рейтинг: 0 / 0
06.09.2006, 23:08
    #33969474
AlEXoFo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметризированный запрос
DBNull.ValueЕсли каждый день узнавать что-то новое, то можно очень долго чему-нибудь учиться :)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Параметризированный запрос / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]