Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Использование IBStoredProc   Найти похожие ветки 

 
Term ©   (2005-08-29 14:06) [0]

Гдето попадалось что использовать IBStoredProc нежелательно ввиду глючности последнего, но возникла необходимость его использования. Есть аналогичный компонент в фибсах(раньше с этими компонентами не работал и не устанавливал поэтому спрашиваю), и какие есть рекомендации

Без этого компонента не обойтись


 
Term ©   (2005-08-29 14:30) [1]

народ есть кто живой, кто может просветить относительно использования этого компонента


 
Domkrat ©   (2005-08-29 14:41) [2]

ibase.ru

>В общем случае не рекомендуется к использованию, т.к. имеет >застарелую проблему с обработкой ошибок. При самостоятельном >исправлении данной ошибки в коде (IBStoredProc.pas) может быть >использован.

Ошибка описана сдесь

http://www.ibase.ru/devinfo/ibstp.htm


 
Term ©   (2005-08-29 15:13) [3]

понятно, а с фибсами как дело обстоит


 
Domkrat ©   (2005-08-29 15:47) [4]

C FibPlus все ок.


 
Карелин Артем ©   (2005-08-29 17:41) [5]

Делаем код вида Execute procedure с помощью указанного кода и не думаем о проблемах.
А вообще у меня несколько сот рабочих мест без проблем используют довольно активно сабж и проблем не было.
function GenerateSQL(Database:TIBDatabase;const SPName:string):string;
var
 Query : TIBSQL;
 input : string;
begin
 Database.InternalTransaction.StartTransaction;
 Query := TIBSQL.Create(Database);
 try
   Query.Database := DataBase;
   Query.Transaction := Database.InternalTransaction;
   Query.SQL.Text := "SELECT RDB$PARAMETER_NAME,  RDB$PARAMETER_TYPE " + {do not localize}
                      "FROM RDB$PROCEDURE_PARAMETERS " + {do not localize}
                      "WHERE RDB$PROCEDURE_NAME = " + {do not localize}
                      """" + FormatIdentifierValue(Database.SQLDialect,
                              QuoteIdentifier(Database.SQLDialect, SPName)) + """" +
                      " ORDER BY RDB$PARAMETER_NUMBER"; {do not localize}
   Query.Prepare;
   Query.GoToFirstRecordOnExecute := False;
   Query.ExecQuery;
   while (not Query.EOF) and (Query.Next <> nil) do
   begin
     if (Query.Current.ByName("RDB$PARAMETER_TYPE").AsInteger = 0) then {do not localize}
     begin
       if (input <> "") then
         input := input + ", :" +
           QuoteIdentifier(Database.SQLDialect,trim(Query.Current.ByName("RDB$PARAMETER_NAME").AsString)) {do not localize}
       else
         input := ":" +
           QuoteIdentifier(Database.SQLDialect, trim(Query.Current.ByName("RDB$PARAMETER_NAME").AsString)); {do not localize}
     end
   end;
   if Input <> "" then
     Result := "Execute Procedure " + {do not localize}
         QuoteIdentifier(Database.SQLDialect, SPName) + "(" + input + ")"
   else
     Result := "Execute Procedure " + {do not localize}
         QuoteIdentifier(Database.SQLDialect, SPName);
 finally
   Query.Free;
   Database.InternalTransaction.Commit;
 end;
end;


 
Term ©   (2005-08-29 18:02) [6]

не использование Query не подходит т.к. нужно в течении короткого времени пересадить приложение на FB, в приложении полно TADOStoredProc, время просто поджимает



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
3-1124719894
M@rlin
2005-08-22 18:11
2005.10.09
Не выполняется процедура SQL из Delphi


2-1124860710
Sergo
2005-08-24 09:18
2005.10.09
Пользователь


10-1105358568
Vetal
2005-01-10 15:02
2005.10.09
SaveAs через OLE в Excel не позволяет переписать поверху


2-1124826479
Агат
2005-08-23 23:47
2005.10.09
Работа с текстовым файлом


1-1127201618
Barloggg
2005-09-20 11:33
2005.10.09
Какой вызов процедуры быстрее?