|
|
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Доброе время, суток! Возникла следующая проблема, пытаюсь с помощью данного кода передать значения в процедуру Oracle (для создания записей в таблице), на что получаю ошибку метода передачи данных. Количество передаваемых значений уменьших до двух, чтобы не усложнять код. Сам код в Оракле работает нормально, а в VB я новичок. Set Conn = CreateObject("ADODB.Connection") Set Rs = CreateObject("ADODB.Recordset") Set Cmd = CreateObject("ADODB.Command") Conn.Connectionstring = Label20.Caption Conn.open Conn.CursorLocation = 3 Cmd.ActiveConnection = Conn Cmd.CommandType = 1 Cmd.Properties("PLSQLRSet") = True Cmd.CommandText = "{CALL InsertSubscriber(" & Text1.Text & ", " & Text2.Text & "}" Set Rs = Cmd.Execute Cmd.Properties("PLSQLRSet") = False Conn.Close Заранее благодарю за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 13:57 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Что-то в этом роде надо: Set CPw2 = New ADODB.Command With CPw2 .ActiveConnection = Cn .CommandText = QSQL .CommandType = adCmdStoredProc .Parameters.Append .CreateParameter(, adInteger, adParamInput) .Parameters.Append .CreateParameter(, adDouble, adParamOutput) End With Нужно параметры добавить в их коллекцию, с указанием что входное, что выходное, их тип данных. Сначала эту коллекцию почистить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2007, 14:52 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
К сожалению смог применить вышеуказанное, возможно ли приблизительный вариант для решения данной проблемы. Ошибка в типа передаваемых данных, и она все равно выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 09:17 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
что за ошибка-то? I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 09:21 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Method or Data member not found. Пробовал передавать не как техт, ругается оракл. А в этом варианте ругается Vb :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 09:32 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Немного разобрался идет расхождение типов отправляемых данных, т.е. если подставляю одни цифры то все работает нормально, а если текст то в это случае и выходит ошибка. Отсюда думаю и вопрос как добавлять текст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 10:37 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Тип параметра какой? Char, VarChar, ..., Текст покажите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 10:56 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Вот процедурка которая делает запись - ------------------------------------------------ create or replace procedure Test2 ( SNAME varchar2 ) as begin insert into test1 s (SNAME) values (SNAME); end; ------------------------------------------------ Это код на VB ------------------------------------------------- Dim Conn Dim Rs Dim Cmd Private Sub Command1_Click() Set Conn = CreateObject("ADODB.Connection") Set Rs = CreateObject("ADODB.Recordset") Set Cmd = CreateObject("ADODB.Command") Cmd.ActiveConnection = Conn Cmd.CommandType = 2 Cmd.Properties("PLSQLRSet") = True Cmd.CommandText = "{CALL test2(" & sname(1).Text & ") }" Set Rs = Cmd.Execute Cmd.Properties("PLSQLRSet") = False Conn.Close End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 11:16 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Vb функцию немного подправил верхняя нерабочая: Set Conn = CreateObject("ADODB.Connection") Set Rs = CreateObject("ADODB.Recordset") Set Cmd = CreateObject("ADODB.Command") Conn.Connectionstring = Label1.Caption Conn.open Conn.CursorLocation = 3 Cmd.ActiveConnection = Conn Cmd.CommandType = 1 Cmd.Properties("PLSQLRSet") = True Cmd.CommandText = "{CALL test2(" & sname.Text & ") }" Set Rs = Cmd.Execute Cmd.Properties("PLSQLRSet") = False Conn.Close В данном варианте прекрасно передаются числа, и записываются. Если же хочу передать текст Оракл его вопринимает как переменую. Подскажите лекарствою ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 12:00 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Кавычки Cmd.CommandText = "{CALL test2('" & sname.Text & "') }" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 12:09 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Worobjoff Спс, все заработало..... Кавычки все гениально и просто :) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2007, 12:19 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
в продолжение темы следующий вопрос: Cmd.CommandText = "{CALL test2('" & sname.Text & "', '" & Format(Text2, "DD.MM.YYYY") & "' ) }" передаю дату и получаю билиберду, при этом от переставки DD.MM.YYYY ничего не меняет он своеобразным образом все перемешывает, как решить данную пробему ? плз подскажите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2007, 08:28 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
В оракле вот такой формат 20.01.0001 7:00:00, а должен был быть 01.01.2007, непонятным образом путаются значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2007, 09:27 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Проблему решил: Cmd.CommandText = "{CALL test2('" & sname.Text & "', '" & Format(Text2, "yyyy.MM.dd") & "') }" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2007, 10:48 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Стандартный для оракла синтаксис значения даты при использовании динамического SQL: " TO_DATE('" & Format(varDate, "dd.MM.YYYY hh:mm:ss") & "', 'dd.mm.yyyy hh24:mi:ss')" (кстати, в MS SQL то же есть подобная "заморочка") Почти все СУБД понимают универсальный формат: Format(varDate, "yyyy-MM-dd hh:mm:ss") но это - на свой страх и риск. Лучше повозиться с ADO параметрами - универсальней код получится. Кстати, вопрос не в тему, а почему DTPicker не используем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2007, 14:58 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Как бы сказать я пока незнаком со всеми методами в VB, приходится ознакамлиаться в ходе решения тех или иных проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 13:54 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Worobjoff.... Еще раз спасибо за помощь. Возможно ли найти нормальную литературы VB для работы с ADO, даже в больших справочниках информации по этому поводу мизер, приходится питаться с форумов. Хотя проблем возникает все больше и больше в частности по параметрам которые возвращаются с Оракла не посредством SYS_REFCURSOR, а например out number или значения Result, сейчас например ищу метод работы с Сиквенсами, по этой проблеме вообще нигде не нашел никаких описаний приходится импровизировать, поэтому создал дополнительную темку http://www.sql.ru/forum/actualthread.aspx?tid=497724. С уважением , ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 14:04 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, в продолжении темы: Проблема заключается в следующем у меня существует ряд запросов обновлений определенных строк, в нескольких таблицах код большой, и таблиц много, сам код в Oracle работает нормально, производит абсолютно логичные действия без ошибок, но вот незадача: я пытаюсь передать такие же строковые данные повторяюсь следующим кодом: Set con = New ADODB.Connection Set rst = New ADODB.Recordset sConString = pass con.Open sConString sSQLString = "begin numb_calc(stelnumber => 97556465, smonth => 9,syear => 2007); end;" Set rst = con.Execute(sSQLString) в Оракле работает идеально, но с VB выдает ORA-01861: literal does not format string Юзал поиск тем, но ничего под свой случай не нашел. Проблема заключается в том чтобы передать данные из VB, и вылетает эта ошибка, пробовал несколько вариантов преобразования передачи чисел Varchar, Varchar2, Number (в Оракле работает со всеми форматами) (Date под мой случай не подходит), ошибка упорно вылетает при обращении со сторонего интерфейса, хотя повторюсь из Plus все работает идеально... В чем беда не пойму. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 11:18 |
|
||
|
Пытаюсь передать данные в Oracle
|
|||
|---|---|---|---|
|
#18+
Такую запись параметров процедуры я не знаю (...,smonth=>9,...). Все что могу подсказать - поизучать библиотеку oo4o. В директории oracle есть примеры на VB6 как ей пользоваться. Это родная оракловая COM-библиотека доступа. Все что о ней знаю - она может все что может pl+ но не поддерживает привязку к контролам на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2007, 18:35 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34926947&tid=2163031]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 374ms |

| 0 / 0 |
