Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS Access:повторное использование значения в ? при работе через OLE DB 
:(
    Опции темы
YankovskyAndrey
Дата 13.6.2010, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



есть таблица Orders со столбцами "Order ID", "Unit ID"(ID организации), "Subunit ID"(ID подразделения)
мне нужно по заданному объединить все записи, где либо "Unit ID", либо "Subunit ID" равны заданному числу.
что-то вроде
SELECT [Order ID]
FROM Orders
WHERE ([Unit ID] = ?)
UNION
SELECT     [Order ID]
FROM         Orders
WHERE     ([Subunit ID] = ?)
причём значение в вопросах должно быть одинаковым.
спасибо

Это сообщение отредактировал(а) YankovskyAndrey - 13.6.2010, 08:34
PM MAIL   Вверх
YankovskyAndrey
Дата 13.6.2010, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



наверняка же есть какая-нибудь конструкция типа _1 или там $1. я просто не могу найти такой информации.
PM MAIL   Вверх
YankovskyAndrey
Дата 13.6.2010, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



очень нужен совет!
PM MAIL   Вверх
Zloxa
Дата 13.6.2010, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Код

select [Order ID] from orders where [Unit ID] = :param or [Subunit ID]  = :param



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
skyboy
Дата 13.6.2010, 17:38 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



главное - не указывать СУБД. чтоб интрига была.

Добавлено через 1 минуту и 10 секунд
а то вдруг целевая СУБД/способ подключения как-то не поддерживают именованные параметры, пример использования которых в синтаксисе для MSSQL привел Zloxa - можно будет на каждое предложение говорить: "опс, а оно все равно не работает..."
PM MAIL   Вверх
YankovskyAndrey
Дата 14.6.2010, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



извините, я новичок. я в течении восьми часов обновлял каждые 10 минут эту страницу потому что больше мне неоткуда ждать ответа. потом заснул.
теперь я знаю, что есть такие именованные параметры и что есть они не в каждой субд.
и соответственно, я теперь добавлю, что эта субд - Microsoft Access, способ подключения - OLE DB.
и я до сих пор не разобрался.
спасибо.
PM MAIL   Вверх
YankovskyAndrey
Дата 14.6.2010, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



спасибо модератору)
PM MAIL   Вверх
skyboy
Дата 14.6.2010, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



пример тебе Zloxa привел.
что это называется именованными параметрами(named parameters) ты знаешь.
про то, что речь о MS Access через OLEDB ты сообщил.
теперь осталось выяснить, какой язык программирования используешь, перекинуть тему в соответствующий раздел, чтоб там сразу же подсказали, как называются функции/методы для работы с именованными параметрами.
PM MAIL   Вверх
chip_and_dayl
Дата 14.6.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



YankovskyAndrey
А в чем то проблема осталась?smile


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
YankovskyAndrey
Дата 14.6.2010, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



то, что я нашёл:

Цитата(MSDN)

The .NET Framework Data Provider for OLE DB and .NET Framework Data Provider for ODBC do not support named parameters for passing parameters to an SQL statement or a stored procedure. In this case, you must use the question mark (?) placeholder, as in the following example.

Copy
SELECT * FROM Customers WHERE CustomerID = ?
As a result, the order in which Parameter objects are added to the Parameters collection must directly correspond to the position of the question mark placeholder for the parameter.


таким образом Ole Db не поддерживает именованные параметры, а предоставляет возможность работы только с позиционными.
запрос придётся сделать таким:
Код

select [Order ID] from orders where [Unit ID] = ? or [Subunit ID]  = ?

и два раза передать один и тот же параметр.

спасибо за помощь.

Это сообщение отредактировал(а) YankovskyAndrey - 14.6.2010, 18:21
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1034 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.