|
|
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Народ, кто сталкивался в аксесе с параметризованым запросом в который надо передать масив значений для 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", не помогает нифига. Кто нибудь боролся с таким? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 23:06:14 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Формируем строчку через запятую - как и было сделано - далее через querydef меняем сво-во SQl у запроса или текст запроса в вб - потом по нему рекордсет. Это уже форме можно присвоить, если надо. А если сиквел или оракл - то проблем вообще нет - но это динамический скл - для сиквела на больших данных тормознутее будет... Я не алкоголик - просто пиво пью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 00:16:02 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
:) Я тоже по пиву шяс.... В общем я не из никакого не VB это далею, а из C#, база ACCESS и запрос это хранится в базе и обращаюсь к нему как к хранимой процедуре :) Так чтотак непокатит, сроку пробовал передавать, нехочет, всёоавно собака только с первым в списке элементом сравнивает. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 00:23:14 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Покатит ещё как, если на клиенте стоит Access - тогда нет никакогй сложности сделать то, что я описал - создайте Access.Application и впредё и с песней по объектам Access - причём в конечном итоге на гриде надо инфу отобразить - если так - то тогда можно без Аксеса через Jet всё выполнить. Сам с Аксесом работал из нета - но я на вб всё это делал - но роли никакой не играет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 00:27:11 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Хм, Чесно говоря даже никогда не работал с Access.Application, нет случаем примера как создать объект Access.Application, и насколько это производительно, так как если это тормоза то мне такое тоже не покатит, мне это нужно чтоб заоптимайзить бизнес процессы в приложении уже готовом на 95%, особо там заворачиватся не хочется, но если это реально быстрее будет, то думаю стоит завернутся. В общем получается 2 вопроса: 1. насколько это резонно по производительности? 2. есть ли хотябы пример хоть какой нибудь для старта? хотябы как создать объект Access.Application :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 00:32:47 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
1-й вопрос - как сейчас работаете с Аксеом? На самом деле создавать приложение нужно в том случае - если вам нужно получить доступ к объектам аксес -если только выполнить запрос и отобразить его где-либо - то Аксес не нужно создавать - достаточно сформировать SQL выражение и выполнить его посредсвом ADO - всё. Это происзводительнее, чем работать с приложение Access. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 00:55:48 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Ясно. 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, поэтому я пока даже не могу сейчас сделать динамический запрос, но чесно говоря мне и не хотелось юбы его делать динамическим. хочется всётаки добится что-бы работать только с хранимыми процедурами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 01:18:45 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
P.S. Сейчас в принципе всё работает, но я просто делаю для каждого элемента выборку, правда в одной транзакции, но всёравно тормоза. Вот хочется заоптимайзить процес этот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 01:22:09 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
блин, схавались индексаторы в примере метода, наверное из-за квадратных скобок, ну и там ещё одна ошибоска в примере есть, но не суть важно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 01:24:31 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
voodoosблин, схавались индексаторы в примере метода, наверное из-за квадратных скобок Я исправил. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 01:38:28 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Спасибо!!! Кстати тут никак нельзя свои мессаги редактировать чёто, а раньше вроде можно было, или я путаю? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 01:41:39 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Не-не. Низя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 01:46:48 |
|
||
|
Параметризованный запрос - передать масив значений для IN
|
|||
|---|---|---|---|
|
#18+
Попробуй Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2004, 02:36:20 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32741332&tid=1671050]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
76ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 337ms |

| 0 / 0 |
