powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Параметризованный запрос - передать масив значений для IN
13 сообщений из 13, страница 1 из 1
Параметризованный запрос - передать масив значений для IN
    #32741310
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, кто сталкивался в аксесе с параметризованым запросом в который надо передать масив значений для IN(@elements)

Запрос такой:

SELECT element_id, [value]
FROM TextValues
WHERE element_id In (@elements) And lang='rus' And field_id=1;

Это Query, обращаюсь как к хранимой процедуре, в MSSQL при передаче в такой запрос масива всё нормально работает, а вот акцес собака только с первым в масиве элементом сравнивает. Пробовал передавать как строку, типа "1, 2, 6, 9", не помогает нифига.

Кто нибудь боролся с таким?
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741329
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формируем строчку через запятую - как и было сделано - далее через querydef меняем сво-во SQl у запроса или текст запроса в вб - потом по нему рекордсет. Это уже форме можно присвоить, если надо.
А если сиквел или оракл - то проблем вообще нет - но это динамический скл - для сиквела на больших данных тормознутее будет...

Я не алкоголик - просто пиво пью.
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741332
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Я тоже по пиву шяс....

В общем я не из никакого не VB это далею, а из C#, база ACCESS и запрос это хранится в базе и обращаюсь к нему как к хранимой процедуре :) Так чтотак непокатит, сроку пробовал передавать, нехочет, всёоавно собака только с первым в списке элементом сравнивает. :(
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741334
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покатит ещё как, если на клиенте стоит Access - тогда нет никакогй сложности сделать то, что я описал - создайте Access.Application и впредё и с песней по объектам Access - причём в конечном итоге на гриде надо инфу отобразить - если так - то тогда можно без Аксеса через Jet всё выполнить.

Сам с Аксесом работал из нета - но я на вб всё это делал - но роли никакой не играет.
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741336
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, Чесно говоря даже никогда не работал с Access.Application, нет случаем примера как создать объект Access.Application, и насколько это производительно, так как если это тормоза то мне такое тоже не покатит, мне это нужно чтоб заоптимайзить бизнес процессы в приложении уже готовом на 95%, особо там заворачиватся не хочется, но если это реально быстрее будет, то думаю стоит завернутся. В общем получается 2 вопроса:

1. насколько это резонно по производительности?
2. есть ли хотябы пример хоть какой нибудь для старта? хотябы как создать объект Access.Application :)
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741345
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1-й вопрос - как сейчас работаете с Аксеом?
На самом деле создавать приложение нужно в том случае - если вам нужно получить доступ к объектам аксес -если только выполнить запрос и отобразить его где-либо - то Аксес не нужно создавать - достаточно сформировать SQL выражение и выполнить его посредсвом ADO - всё.
Это происзводительнее, чем работать с приложение Access.
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741353
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно. C аксесом работаю через классы из System.Data.OleDb, но надо учесть, что у меня логика данных такова, что я работаю с аксесом, только хранимыми процедурами его исключительно (Queries).

Самое интересное то, что если выполнить эту Query в самом ACCESS-е и переджать параметры через запятую, то он нормально возвращает данные, а если из приложения, то только как будто я передал только один параметр, хоть строку передаю в параметре, хоть масив... вообще фигня какая-то.

Вот метод:

public static IDataReader GetTextValues(IElementCollection elements, IElementField field)
{
int[] elementsParameter = new int[elements.Count];

for(int i = 0; i < elements.Count; i++)
elementsParameter[i] = elements[i].ID;

return DataProvider.StaticExecuteReader("GetTextValues", "elements", elementsParameter);
}

Метод StaticExecuteReader принимает название прощедуры и параметры имя значение в любом количестве (params). DataProvider сейчас сделан так, что в итоге, у объекта OleDbCommand свойсто CommandType будет всегда StoredProcedure, поэтому я пока даже не могу сейчас сделать динамический запрос, но чесно говоря мне и не хотелось юбы его делать динамическим. хочется всётаки добится что-бы работать только с хранимыми процедурами.
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741354
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Сейчас в принципе всё работает, но я просто делаю для каждого элемента выборку, правда в одной транзакции, но всёравно тормоза. Вот хочется заоптимайзить процес этот.
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741355
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, схавались индексаторы в примере метода, наверное из-за квадратных скобок, ну и там ещё одна ошибоска в примере есть, но не суть важно :)
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741359
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
voodoosблин, схавались индексаторы в примере метода, наверное из-за квадратных скобок
Я исправил. :^)
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741361
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!!! Кстати тут никак нельзя свои мессаги редактировать чёто, а раньше вроде можно было, или я путаю? :)
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741364
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не-не. Низя.
...
Рейтинг: 0 / 0
Параметризованный запрос - передать масив значений для IN
    #32741397
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй
Код: plaintext
1.
2.
3.
SELECT element_id, [value]
FROM TextValues
WHERE (instr(@elements & ',' , str(element_id) & ',')> 0 ) And (lang='rus') And (field_id= 1 );
при условии,что @elements -это строка типа "1, 2, 6, 9"
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Параметризованный запрос - передать масив значений для IN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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