|
|
|
| Доброго времени суток всем!
Перевел одну из баз на SQL 2000 Server, клиента пока оставил на ACCESS 2003 (MDB).
Хотел перевести ряд запросов на хранимые процедуры с параметрами, чтобы побыстрей выполнялись.
Запуск без параметров выполняется без проблем (через создание запроса к серверу), а вот с параметрами не получается.
Подскажите как запустить на сервере хранимую процедуру с параметрами, через запрос или кодить надо на VBA?
Заранее благодарю! | |
|
| |
|
|
|
| Если не нужно ничего возвращать, то так
Set q = Currentdb.CreateQueryDef("")
q.Connect = Строка подключения
q.SQL = ИмяХранимки параметр1, параметр2
q.ReturnsRecords = False
q.execute
| есkи нужно, то
Set q = Currentdb.CreateQueryDef("")
q.Connect = Строка подключения
q.SQL = ИмяХранимки параметр1, параметр2
q.ReturnsRecords = true
set rst = q.OpenRecordset(dbOpenSnapshot)
|
| |
|
| |
|
|
|
| Попробовал навесить на кнопку код:
Private Sub Кнопка0_Click()
Dim rst As New ADODB.Recordset
Set q = CurrentDb.CreateQueryDef("")
q.Connect = "ODBC;DSN=KontDiscTest;Description=KontDiscTest;UID=RobotKontDiscTest;" & _
"APP=Microsoft Office 003;WSID=A12FEN;DATABASE=KontDiscTestSQL;LANGUAGE=Русский"
q.Sql = "test_KontDisc " & Поле2
q.ReturnsRecords = True
Set rst = q.OpenRecordset(dbOpenSnapshot)
End Sub
Ругается на Set rst - Ошибочный аргумент ошибка 3001
Поле2 символы, test_KontDisc предварительно запускал через QueryAnalyser - работает. | |
|
| |
|
|
|
| ну а если без возврата значений? работает? | |
|
| |
|
|
|
| Нет, ругается на
q.Execute - ODBC Ошибка вызова 3146.
Может быть библиотеки какие-нибудь надо подключить? | |
|
| |
|
|
|
| вчитался. у меня описано для DAO | |
|
| |