powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Открыть рекордсет АДО
16 сообщений из 16, страница 1 из 1
Открыть рекордсет АДО
    #32566810
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает как открыть АДО рекордсет через ADODB.Command с передачей параметров?
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566822
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не СП, нужно окрыть используя adCmdText + параметры
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566834
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    With cmm
        Set .ActiveConnection = GetCnn
        .CommandType = adCmdStoredProc
        .CommandText = sp_name
        
        .Parameters.Append .CreateParameter("RetVal", adInteger, adParamReturnValue)
        ...

       Set rs = .Execure
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566873
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одной строкой

Код: plaintext
set Rs = currentproject.connection.execute "Exec myproc 123,'блабла'"
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566885
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКодной строкой
...


Можно и одной, если OUTPUT параметров нет или они не важны :)
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566888
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[ASDB/topic/100964&pg=-1#750209]
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566896
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно примерно так:
cmd.commandtext = "select * from tblll where = {сюда параметр}"
cmd.commandtype=adcmdtext
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566897
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что?

меняем CommandType на ваше
И на коллекцию .Parameters эти изменения не влияют, т.е. она остается :)
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566915
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GuestGuestНужно примерно так:
cmd.commandtext = "select * from tblll where = {сюда параметр}"
cmd.commandtype=adcmdtext


Я в таких случаях не сильно заморациваюсь, а пишу примерно так

Код: plaintext
1.
2.
3.
4.
5.
Const c_strSQL = "select * from tblll where xxx = @xxx"

 'В коде пишу примерно так
 
strSQL = Replace(c_strSQL, "@xxx", [парам])
rs.open strSQL ...
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566923
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim Com As ADODB.Command, Par As ADODB.Parameter
Set Com = New ADODB.Command
Com.ActiveConnection = ConShort
Com.CommandType = adCmdText
Com.Parametrs.Append Com.CreateParameter "S", adDate, adParamInput
Com.Parameters("S").Value = Me.Поле0
Com.CommandText = А сюда что? Нужно примерно так "select * from tblll where = {сюда параметр}"

Имени процы нет, селект собирается динамично, но часть параметров необходимо передать через объект ADODB.Command.Parametrs
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32566978
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aparome:

Обычно я тоже не заморачиваюсь, но собрать стринг строку не хочу из-за следующих причин:

1) Нужно дополнительно проверять формат даты (на клиенте и сервере),
и исходя из этого писать все процедуры с учетом настроек сервера
(например на сервере в коннекшене установили формат даты dmy и
следовательно все SQL-строки нужно собирать в этом формате [опять же где гарантия что этот формат там останется?]).
Можно и забыть вставить в код преобразование даты в текстовый формат по установленному образцу.

2) Нужно проверять разделитель запятой на клиенте. Опять лишний геморой (см. П.1).

Всего этого я делать не хочу.

Есть способ передавать параметры в динамичный SQL, я это знаю, но не помню где видел :(.
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32567030
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) Нужно дополнительно проверять формат даты (на клиенте и сервере),
и исходя из этого писать все процедуры с учетом настроек сервера
Да ну?

А так не пробовали:
http://www.sql.ru/faq/faq_topic.aspx?fid=109

Код: plaintext
 2 ) Нужно проверять разделитель запятой на клиенте. Опять лишний геморой (см. П. 1 ).
А так
http://www.sql.ru/faq/faq_topic.aspx?fid=157 (VBA v2)
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32567263
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз других соображений нет, то тема закрыта
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32568868
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ни фига!

paparome:
Мне все эти обходные маневры не нужны. Все это годится для динамичного SQL. Мне нужно не только для этого, а еще для вызова сохраненных процедур, а иногда нужно им выставлять Prepared = True. Если не знаешь, то нужно ответить: "не знаю" или написать вот это:
mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\BOOKS\mdacxml.chm::/htm/mdconcommandparams.htm
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32568914
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто то здесь чего то не понимает и воду мутит

авторЕсть способ передавать параметры в динамичный SQL, я это знаю, но не помню где видел

если имени хранимой процедуры нет а это динамичный sql то и собирай SQL
строку динамически - все что душе угодно

Код: plaintext
set Rs = currentproject.connection.execute "Select " & MYSELECTSTR & "  FROM " & MYFROMSTR & " Where " & MYWHERESTR 
...
Рейтинг: 0 / 0
Открыть рекордсет АДО
    #32570693
guestguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК:
Вот уж действительно воду замутили, еще раз говорю: мне не нужен динамический SQL!!! (читайте выше), мне было нужно вот это:mk:@MSITStore:C:\\Program%20Files\\Microsoft%20SQL%20Server\\80\\Tools\\BOOKS\\mdacxml.chm::/htm/mdconcommandparams.htm

Только одного не понимаю, зачем так выгибать грудную клетку похваляясь не в тему топика??? В аналогичном топике на форуме SQL ответ мне дали сразу (/topic/100967&pg=-1) без лишних телодвижений. Как то хочется видеть профессиональный форум без выражений типа "кто то здесь чего то не понимает и воду мутит" :(((((, а то превратили форум в посиделку какую-то где человек не сильно разбирающийся в предмете вопроса может почуствовать себя очень-очень маленьким по сравнению с такими "крутыми" дядьками. Все таки повежливее нужно как-то.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Открыть рекордсет АДО
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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