Главная страница
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.054 c
1-1126621603
IceBeerg
2005-09-13 18:26
2005.10.09
Построчное чтени большого текстового файла


9-1110992003
[wl]
2005-03-16 19:53
2005.10.09
Кто нить пишет игрушки для мобильников?


3-1125136968
strela
2005-08-27 14:02
2005.10.09
Сортировка текстовых записей в DBGrid


3-1125302849
yurrius
2005-08-29 12:07
2005.10.09
Login к Firebird 1.0


3-1125043936
Виталий Панасенко
2005-08-26 12:12
2005.10.09
Возник. ошибки в дес.-тайме при попытке создать экземпляры полей