InTouch.Вызов хранимой процедуры с параметром

Вопросы, не попадающие в другие разделы.

InTouch.Вызов хранимой процедуры с параметром

Сообщение Mzman » Вт дек 13, 2011 10:50 pm

Здравствуйте.
Есть некая процедура Proc1 с парамтром Par1(int) хранимая на удаленном сервере.Эта процедура делает обыкновенный запрос оператором Select.Дайте пожалуйста пример как ее вызвать из InTouch через QuickFunctions.
И еще...в каком виде будет результат Select'а и как мне до него добраться?
Mzman
 
Сообщения: 9
Зарегистрирован: Вт дек 13, 2011 10:47 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Генератор зла » Ср дек 14, 2011 11:28 am

InTouch - Help - Supplementary Components - Working with SQL Databases from InTouch
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Mzman » Ср дек 14, 2011 7:38 pm

Гениальный ответ
Mzman
 
Сообщения: 9
Зарегистрирован: Вт дек 13, 2011 10:47 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Генератор зла » Ср дек 14, 2011 9:37 pm

Mzman писал(а):Гениальный ответ

Может быть. Но, увы, неполный.
InTouch - Help - Указатель - SQLSelect
Из описания видно что Select возвращает строку БД, а не таблицу. И хранимую процедуру из InTouch, увы, не вызвать.
----------------------
Ошибся :)
SQL Statement to pass parameters to a stored procedure (Return parameters passed through a bind list)
Note: @xxxx are input parameters in the stored procedure
Statement="exec sp_ValidateLot @NoDeLot = '"+ InSelectLot + "'" + ", @NoDeCuve = '"+ InSelectCuve +"'" + ", @ActualDateTime = '"+ InActualDateTime +"'";
ResultCode_Runtime1=SQLSetStatement(ConnectionId_Runtime, Statement);
ResultCode_Runtime2=SQLExecute(ConnectionId_Runtime,"ValidateLotBindList",0);
ResultCode_Runtime3=SQLFirst(ConnectionId_Runtime);


How do I run a Stored Procedure without a bind list? I don't need to return any data from my Stored Procedure. How do I run the SQLExecute() properly?
Resolution Description: Use SQLExecute(ConID, "", SqlHandle); Note: You still need at least one Bindlist in your application; It can be a dummy Bindlist. Creating the bindlist creates the SQL.def file needed for SQLAccess Manager.

How To: Insert a record into a database using a stored procedure
ResultCode1 = SQLSetStatement(ConnectionId,"EXEC sp_UpdateBatchMasterBaseMixTankIng ' "; + Tag.Value + "; ' "); ResultCode2 = SQLPrepareStatement(ConnectionId,SQLHandle1); ResultCode3 = SQLExecute(ConnectionId,"Dummy",SQLHandle1);

Can SQL Access accept a return value from a stored procedure?
Yes, the value must be stored in a Table in the Database and a Bind List must be created to access the value. Also see the SQLAccess User's guide (и здесь тот же гениальный ответ!!!)

No records returned from MSSQL after SQL insert, select via stored procedure.
The problem is specific to the SQL code used, and Microsoft SQL Server.
Modify the stored procedure by setting NOCOUNT on until after the SQL insert.
Resolved by turning NOCOUNT on before the insert, and turning NOCOUNT off after the insert/before the select. Refer to the SQL Server Books Online for more information

Вот теперь ответ более-менее полный.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Mzman » Ср дек 14, 2011 10:00 pm

Генератор зла писал(а):
Mzman писал(а):Гениальный ответ

И хранимую процедуру из InTouch, увы, не вызвать.

Ну это вы зря.На локальном сервере создавал простенькую процедурку,которая создавала табличку.И вызывал эту процедуру из InTouch без проблем.
Mzman
 
Сообщения: 9
Зарегистрирован: Вт дек 13, 2011 10:47 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Генератор зла » Ср дек 14, 2011 10:03 pm

А кто мешает прописать в DSN удалённый сервер?
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Mzman » Ср дек 14, 2011 10:11 pm

Удаленный сервер уже прописан в DSN(если я правильно понял что такое DSN(администрированеие->источники данных ODBC)).
У меня проблема другого плана,не знаю как задать параметр из InTouch,вот и попросил нехитрый примерчик.
Mzman
 
Сообщения: 9
Зарегистрирован: Вт дек 13, 2011 10:47 pm

Re: InTouch.Вызов хранимой процедуры с параметром

Сообщение Генератор зла » Ср дек 14, 2011 10:43 pm

Ну, тогда:

SQL Statement to pass parameters to a stored procedure (Return parameters passed through a bind list)
Note: @xxxx are input parameters in the stored procedure

Statement="exec sp_ValidateLot @NoDeLot = '"+ InSelectLot + "'" + ", @NoDeCuve = '"+ InSelectCuve +"'" + ", @ActualDateTime = '"+ InActualDateTime +"'";
ResultCode_Runtime1=SQLSetStatement(ConnectionId_Runtime, Statement);
ResultCode_Runtime2=SQLExecute(ConnectionId_Runtime,"ValidateLotBindList",0);
ResultCode_Runtime3=SQLFirst(ConnectionId_Runtime);
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45