powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Sysdate Oracle передаю в VB, ошибка литерала?
10 сообщений из 60, страница 3 из 3
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259368
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneдумаю , что следует упростить процедуру и последовательно ее усложнять по мере выполнения

неважно, если я использую в простой процедуре:

Код: plaintext
to_date(sysdate,'''dd.mm.yyyy''')

Тут же выскакивает ошибка.... Также у меня до сих пор на другой процедуре, которая еще больше.... И там без дат просто не обойтись.
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259376
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте простенькую процедурку сделать для начала:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE OR REPLACE PACKAGE      CUST AS
  FUNCTION TESTPROC(STELNUMBER varchar2( 10 ))
  return varchar2;
end CUST;
/

CREATE OR REPLACE package body   CUST AS
  FUNCTION TESTPROC(STELNUMBER varchar2( 10 ))
  		   return varchar2 is
  v varchar2( 255 );
  begin
  	v :='';
	select 'OK' into v from sys.dual;
    return v;
  end TESTPROC;
end;
/
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259379
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо так

Код: plaintext
to_date(sysdate,''''dd.mm.yyyy'''')
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259432
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneнадо так

Код: plaintext
to_date(sysdate,''''dd.mm.yyyy'''')


Такой синтаксис Оракл не примет.
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259460
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneпопробуйте простенькую процедурку сделать для начала:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE OR REPLACE PACKAGE      CUST AS
  FUNCTION TESTPROC(STELNUMBER varchar2( 10 ))
  return varchar2;
end CUST;
/

CREATE OR REPLACE package body   CUST AS
  FUNCTION TESTPROC(STELNUMBER varchar2( 10 ))
  		   return varchar2 is
  v varchar2( 255 );
  begin
  	v :='';
	select 'OK' into v from sys.dual;
    return v;
  end TESTPROC;
end;
/

Такой вариант работает и в обычной отправке Begin в sqltext... Чем я везде и пользовался, все работает идеально и быстро.
Вся трабла в дате, как я уже указал вначале, он почему-то в упор не запускает это дело.
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259489
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Konst_One , что помогаете. Я действительно немало для себя тута нашел :)
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35259593
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подправьте тестовую процедурку как вы используете дату и покажите ее здесь.
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35260602
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub RunProc1(Conn As ADODB.Connection)
Dim cmd As ADODB.command
Dim p As ADODB.Parameters
'On Error GoTo err_debug
 100  Set cmd = New ADODB.command
 110  Set cmd.ActiveConnection = Conn
 120  cmd.CommandTimeout =  1 
 130  cmd.CommandType = adCmdStoredProc
 140  cmd.CommandText = "billdba.cust.testproc"
 150  Set p = cmd.Parameters
 170  p.Append cmd.CreateParameter("STELNUMBER", adVarChar, adParamInput,  10 ,  1 )
 180  p.Append cmd.CreateParameter("nnumber", adNumeric, adParamInput, ,  1 )
 200  cmd.Execute
Debug.Print Connection1.Errors.Count
Debug.Print Connection1.Errors( 0 ).Description
Exit Sub
err_debug:
Debug.Print Erl & ":" & Err.Number & " " & Err.Description
End Sub

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE OR REPLACE PACKAGE CUST AS
  procedure TESTPROC
  (
  STELNUMBER varchar2,
  nnumber number);

end CUST;
/

create or replace package body CUST AS
  procedure TESTPROC(
  STELNUMBER varchar2,
  nnumber number
  )
 as
 v varchar2( 255 );
 date_sys date;
  begin
    if nnumber= 1  then date_sys:=to_date(sysdate,'dd.mm.yyyy'); end if;
  end TESTPROC;
end;
Вот в точности удалось повторить, эту ошибку.
Если убираю nnumber работает норм, добавляю его и пытаюсь обработать выскакивает ошибка.
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35261399
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
number - это тип с плавающей точкой, так сравнивать некорректно
может вам достаточно целочисленных типов, например int?
...
Рейтинг: 0 / 0
Sysdate Oracle передаю в VB, ошибка литерала?
    #35262201
kiv-1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ораклом я могу обходить эту проблему, по крайней в этом случае, но сам процесс весьма занимателен. Это всего лишь простейшая моя процедурка, которая не является ключевой. Все гораздо сложнее, с более навороченными пакетниками, которые в комплексе завязаны с множеством функций и процедур, где в огромных количествах встречается тип number, и смысла не вижу менять подход Оракла под VB :)
Проще перелопатить VB, под оо4о :)
...
Рейтинг: 0 / 0
10 сообщений из 60, страница 3 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Sysdate Oracle передаю в VB, ошибка литерала?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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