Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / создание процедуры в Access из Delphi посредством ADO / 8 сообщений из 8, страница 1 из 1
15.05.2003, 13:15
    #32160599
Фдуч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
Пытаюсь создать процедуру в Access из Delphi посредством ADO, но ничего не получается. Exception происходит в момент присваивания cat.ActiveConnection := cnn; Чего делать?

Var
cnn : Variant; //ADODB.Connection
cmd : Variant; //ADODB.Command
cat : Variant; //ADOX.Catalog
begin
try
cnn := CreateOleObject('ADODB.Connection');
cmd := CreateOleObject('ADODB.Command');
cat := CreateOleObject('ADOX.Catalog.2.7');
try
cnn.Open('Provider=''Microsoft.Jet.OLEDB.4.0'';Data Source=''c:\mydb.mdb''');
cmd.ActiveConnection := cnn;
cmd.CommandText := 'PARAMETERS [CustId] integer; '+
'Select * From Customers Where CustomerId = [CustId]';
cat.ActiveConnection := cnn;
cat.Procedures.Append('CustomerById',cmd);
cnn.Close;
finally
cnn := Unassigned;
cmd := Unassigned;
cat := Unassigned;
end;
except
on E: Exception do raise;
end;
end;

With best regards Alex Majorov
...
Рейтинг: 0 / 0
15.05.2003, 13:34
    #32160627
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
вот работающий
примерчик
под себя переделай
Dim rst As ADODB.Recordset
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "[Запрос3]"
cmd.Parameters.Append cmd.CreateParameter("[Клиент1]", adInteger, adParamInput, , 2), где 2 - просто значение для параметра [Клиент1]
Set rst = cmd.Execute(, 1)
If Not (rst.EOF And rst.BOF) Then
Debug.Print rst![Клиент]
End If
rst.Close
...
Рейтинг: 0 / 0
15.05.2003, 13:36
    #32160633
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
В Акесе нет Procedure. Со всем, это в MS SQL они есть
Тебе нужно View использовать.
...
Рейтинг: 0 / 0
15.05.2003, 13:56
    #32160662
Фдуч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
2Senin Viktor:
А что получается когда в самом Accesse создаёшь запрос, а затем его сохраняешь? При мона делать не только запросы на выборку данных, но также на добавление, удаление и т.д.. И при этом их можно вызывать именно как StoredProc.
...
Рейтинг: 0 / 0
15.05.2003, 14:00
    #32160668
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
вот вам еще примерчик
"Запрос 1" - это запрос на добавление
записев и в нем
есть параметры

Dim cmd As ADODB.Command
Dim prm As ADODB.Parameter
Dim cat As ADOX.Catalog
Set cat = New ADOX.Catalog
Set cat.ActiveConnection = CurrentProject.Connection
Set cmd = cat.Procedures("Запрос 1").Command
For Each prm In cmd.Parameters
prm.Value = Eval(prm.Name)
Next prm
cmd.Execute
...
Рейтинг: 0 / 0
15.05.2003, 14:03
    #32160671
Хам трамвайный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
предыдущий примерчик
выполняется дольше
чем ниже

Dim lngRec As Long
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText = "[Запрос 1]"
cmd.Parameters.Append cmd.CreateParameter("[Forms]![Форма]![пф Клиенты]![код]", adInteger, adParamInput, , [Forms]![Форма]![пф Клиенты]![код])
cmd.Execute lngRec
MsgBox "Добавлено " & lngRec & " записей."
...
Рейтинг: 0 / 0
15.05.2003, 14:07
    #32160677
Фдуч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
2Хам трамвайный:
Вы похоже не поняли задачу. Требуется не выполнить процедуру в которой есть параметры, а её создать.
...
Рейтинг: 0 / 0
15.05.2003, 14:29
    #32160701
Фдуч
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
создание процедуры в Access из Delphi посредством ADO
Я сделал это :)
Хотя предыдущий код сделан в согласии с MSDN, он не работает.
Работающий код приведён ниже:
Var
cmd : Variant; //ADODB.Command
cat : Variant; //ADOX.Catalog
begin
try
cmd := CreateOleObject('ADODB.Command');
cat := CreateOleObject('ADOX.Catalog.2.7');
try
cmd.CommandText := 'PARAMETERS [CustId] integer; '+
'Select * From Customers Where CustomerId = [CustId]';
cat.ActiveConnection := 'Provider=''Microsoft.Jet.OLEDB.4.0'';Data Source=''c:\mydb.mdb''';
cat.Procedures.Append('CustomerById',cmd);
finally
cmd := Unassigned;
cat := Unassigned;
end;
except
on E: Exception do raise;
end;
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / создание процедуры в Access из Delphi посредством ADO / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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