|
|
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Подскажите, плз, где ошибка. Есть процедура на Оракле с одним входящим параметром. Проверял на Оракле возвращает нужное значение. Хочу получить данные в Гриде. Ругает MSHFlexGrid, хотя аналогичная процедура в СКЛ Сервере 2000 работает. Private Sub Command3_Click() Dim rst As ADODB.Recordset Set rst = New Recordset Dim cnn As ADODB.Connection Dim cmd As ADODB.Command Dim prm As ADODB.Parameter pasword = "A1" Set cnn = New ADODB.Connection cnn.ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=" & pasword & ";Persist Security Info=False;User ID=AISOIL;Data Source=AIS2" Set cmd = New ADODB.Command cnn.Open Set cmd.ActiveConnection = cnn cmd.CommandText = "KLIENT_1" cmd.CommandType = adCmdStoredProc NomerSpisok = 2 '----- Посылаем параметр Set rst.ActiveConnection = cnn Set prm = cmd.CreateParameter("NUM", adInteger, adParamInput, , NomerSpisok) cmd.Parameters.Append prm Set rst = cmd.Execute() Set MSHFlexGrid1.Recordset = rst '-- Ругает,.... rst.Close End Sub ------------------ Оракл - ХП CREATE OR REPLACE PROCEDURE Klient_1(NUM IN NUMBER) IS IN_KLIENT VARCHAR2(30); BEGIN SELECT NAIMKLIENT INTO IN_KLIENT FROM KLIENT WHERE KLIENT.idklient=NUM; DBMS_OUTPUT.put_line('Это клиент- '||IN_KLIENT); END KLIENT_1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:02:03 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
укажи имя схемы, например SCOTT.KLIENT_1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:04:04 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Так схема в строке подключения, или еще где надо? User ID=AISOIL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:11:53 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Никогда не работал на VB, но есть некоторые сомнения, что dbms_output.put_line будет выводить строку в грид. Например, в Delphi используются другие механизмы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:23:05 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Оригинальный текст ошибки в студию. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:24:59 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Вдогонку. Если этот SELECT не находит данных, то возбуждается исключение, которое считается хорошим тоном обрабатывать в процедуре, иначе сообщение возвратиться в вызывающую среду Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:27:23 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Piter_ Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 19:58:07 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
оракловые ХП возвращают рекордсет через refcursor, нужно создать пакет, обьявить переменную refcursor уровня пакета, хранимку тоже создавать в этом пакете, refcursor обьявлять как out параметр хранимки, и вот только тогда получишь рекордсет да, ещё в свойствах adodb.command параметр надо поставить, что это рекордсет из refcursor переписывать сто раз одно и то же смысла нет, на оракловом форуме поиск по словам "refcursor" и "рекордсет" поможет, там есть примеры и таких хранимок и клиентских кодов ------------------ arbeit macht frei ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 09:28:05 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
Спасибо всем откликнувшимся. Ошибка в присоединненом файле. Действительно нельзя так просто вернуть весь рекордсет из ХП. Что просто в СКЛ. Никакой из Гридов бейсика с этим не хочет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 15:35:41 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
MSHFlexGrid, DevExpress dxDBGrid и ComponentOneTrueDBGrid прекрасно работают, получаешь Adodb.рекордсет, пихаешь его гриду и все ------------------ arbeit macht frei ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 17:42:39 |
|
||
|
Как подключить Грид к Ораклу
|
|||
|---|---|---|---|
|
#18+
to bob Как в Бейсике вызвать - подключить к одному из указанных Вами Гридов. Как вернуть из Оракла весь сформированный набор? В форуме по Ораклу подсказали что процедуру надо формировать так CREATE PROCEDURE MyProc(MyParam in number, RS OUT SYS_REFCURSOR) IS begin OPEN RS FOR SELECT * FROM MyTable WHERE ID = MyParam; END MyProc; У меня под 8-й ОРА это не компилирует. В СКЛ плюсе говорит, что процедура откомпилирована но с ошибками. Может это только под 9-й. Кто знает? Как тогда быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2005, 10:36:37 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=339&tid=2168206]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 393ms |

| 0 / 0 |
