Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как получить переменные из хранимой процедуры / 7 сообщений из 7, страница 1 из 1
06.05.2008, 11:24
    #35296302
CupeHb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
Подскажите пожалуйста, как при вызове хранимой процедуры (на DB2) из FOXPRO задать один параметр и получить на выходе значение нескольких параметров
входной параметр @NOMVAG=21
выходные параметры RODVAG,CODE

N=SQLConnect("имя базы","логин","пароль")

n2=sqlexec(N,Call имя схемы.название процедуры(NOMVAG=21) returning RODVAG,CODE)
*скорее всего тут синтаксическая ошибка.
пробовала и по другому
n2=sqlexec(N,"{Call имя схемы.название процедуры(21,0,0)}")
*но при этом не знаю получилось или нет, так как не знаю, как потом выходные значения увидеть и взять

sqldisconnect(n)
...
Рейтинг: 0 / 0
06.05.2008, 11:30
    #35296324
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
...
Рейтинг: 0 / 0
06.05.2008, 11:35
    #35296343
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
Зачем плодить топики :)

На примере:
Есть процедура SetConn в базе данных

BEGIN
declare loNewKd,loKdMax integer default -1;
set loNewKd = 2;
set loKdMax = 3
select loNewKd,loKdMax;
END

Вызываем ее из фокса
Код: plaintext
1.
2.
N=SQLSTRINGCONNECT("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=моя база;UID=мой пользователь;PWD=мой пароль;Port=3306;OPTION=16640") && в хелп какая нужна строка для коннекта
sqlexec(N,"Call SetConn()","UraPoluchilos")
SQLDISCONNECT(N)
Получили алиас UraPoluchilos с двумя полями loNewKd,loKdMax

С Ув. Игорь...
...
Рейтинг: 0 / 0
06.05.2008, 12:03
    #35296429
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
Не прочитал че ЭТ входной параметр...
Процедура prob но есть одна условность параметр должен быть OUT или INOUT
BEGIN
set par1 = 2;
END

Код: plaintext
1.
2.
?SQLEXEC( 1 ,'set @a=1;')
?SQLEXEC( 1 ,'call prob(@a);')
?SQLEXEC( 1 ,'select @a;')

На выходе получил 2...

С Ув. Игорь...
...
Рейтинг: 0 / 0
06.05.2008, 16:27
    #35297475
CupeHb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
Хочу дать ответ в виде примеров на свой вопрос тем, кто сюда зайдет с аналогичным вопросом

N=SQLConnect("имя базы","логин","пароль")

1 пример
забор из хранимой процедуры временной таблицы
A1,A2,A3,A4,A5,A6,A7,A8,A9,A10 входные переменные
надо указывать входные и выходные параметры.
n1=sqlexec(N,"{Call имя процедуры(?A1,?A2,?A3,?A4,?A5,?A6,?A7,?A8,?A9,?A10,?a11,?a12,?a13)}",'временная таблица')

2 пример
забор из хранимой процедуры переменных
b1 -входная переменная
b2-b6 выходные переменные
n2=sqlexec(N,"Call имя процедуры ?b1,?@b2,?@b3,?@b4,?@b5,?@b6",'proba1')
?b1 -входная переменная
?@b2- ,?@b6 выходные переменные

sqldisconnect(n)
...
Рейтинг: 0 / 0
06.05.2008, 18:15
    #35297845
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
По второму пункту...
CupeHbn2=sqlexec(N,"Call имя процедуры ?b1,?@b2,?@b3,?@b4,?@b5,?@b6",'proba1')
И где ЭТ так можно вызвать в MySql...
Синтаксис Call для MySql 5.1
Надо обЪявить переменную, а потом уже вызывать процедуру Call имя процедуры (параметры)
Тестовый пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
loProz = "CREATE PROCEDURE `spTest`(INOUT par1 INTEGER)"+CHR( 13 )+CHR( 10 )+;
		"begin"+CHR( 13 )+CHR( 10 )+"set par1=2;"+CHR( 13 )+CHR( 10 )+"end;"
loVer= 3 
?SQLEXEC( 1 ,"DROP PROCEDURE IF EXISTS spTest")
?SQLEXEC( 1 ,loProz)
?SQLEXEC( 1 ,'set @lo1=?loVer;')
?SQLEXEC( 1 ,'set @lo2=?loVer;')
?SQLEXEC( 1 ,'call spTest(@lo1);')
?SQLEXEC( 1 ,'select @lo1,@lo2;')

И хорошо былоБ указать версию Лисы и МуСкуля...
С Ув. Игорь...
...
Рейтинг: 0 / 0
07.05.2008, 13:06
    #35299497
CupeHb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить переменные из хранимой процедуры
Фокс у меня 8
Процедура написана разработчиком на С++ ,находится в базе DB2.
Как создавалась процедура и как объявлядись параметры мне не надо.
Главное мне передали : входные и выходные параметры, тип и их последовательность.
Что касается примеров,то это работает и безошибочно,правда пришлось поспрашивать.
С Уважением,Сирень.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как получить переменные из хранимой процедуры / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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