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

Вниз

OCI   Найти похожие ветки 

 
vecna ©   (2005-11-21 21:06) [0]

А нет ли у кого примерчика написанного с прямым обращением к OCI, которая коннектится к базе и выполняет запрос или процедурку. Желательно на Delphi. Можно и на C.
Исходники ODAC, DAO и т.д. не предлагать =)

Вроде как косяк в 9ке, хочу быть точно уверенным.


 
ANB ©   (2005-11-21 21:16) [1]


> vecna ©   (21.11.05 21:06)

Какая версия в 9-ке ? И какой косяк ?


 
vecna ©   (2005-11-21 21:34) [2]

9206
косяк плавающий, причины его появления я не могу сформулировать, именно поэтому нужен пример воспроизводящий ошибку. проявляется при работе с CLOBами при вызове с клиента например такой процедуры:

create or replace procedure TEST(STABLENAME in varchar2, CMODULE in CLOB) as
begin
 null;
end;

CLOB нужно создать не на сервере (в SQL-блоке), а через OCI. Например вот так (ODAC):


 procedure LoadClob(const ATable, AClob: string);
 var
   LClob: TOraLob;
 begin
   LClob := TOraLob.Create(LSession.OCISvcCtx);
   try
     LClob.CreateTemporary(ltClob);
     LClob.AsString := AClob;
     LClob.WriteLob;
     with TOraStoredProc.Create(nil) do
     try
       StoredProcName := "TEST_CLOB";
       Session := LSession;
       Prepare;
       ParamByName("STABLENAME").AsString := ATable;
       ParamByName("CMODULE").AsOraClob := LClob;
       Execute;
     finally
       Free;
     end;
   finally
     LCLob.Free;
   end;
 end;


получаю pl/sql numeric or value error.
достверно известно, что косяк на одном и том же наборе данных не проявляется на версиях 9201 - 9207, за исключением 9206, версия клиента значения не имеет.

я бы дал необходимый набор, но он слишком достаточно большой ~ 42 Мегов.


 
vecna ©   (2005-11-21 21:35) [3]

есессна:

StoredProcName := "TEST";


 
ANB ©   (2005-11-21 22:44) [4]


> vecna ©   (21.11.05 21:35) [3]

Ух млин. Дамс. Исходников у меня нету, но наш оракловый гуру говорит, что в 9 целый список косяков. Я вообще то блобы на сервере создаю. Тот же гуру грит, что вышел патч 9.2.0.8.


 
vecna ©   (2005-11-21 22:54) [5]

то что косяков там полно я знаю =) уже намучался... просто большинство из них достаточно легко локализуются, а вот с этим просто засада какая-то...


 
evvcom ©   (2005-11-22 09:05) [6]

Я парился с блобами и нашел, что другие варианты, кроме как делать блоб-параметр in/out, не проходят, что собственно (другие варианты) у меня так и не получилось. Т.е. делаю примерно так:

create or replace MyProc(
 pId MyTable.id %type,
 pBody in out MyTable.body %type
) is
begin
 update MyTable t
   set t.body = pBody
 where t.id = pId
 returning t.body into pBody;
end;

Ну и в Дельфях:
TOraParam(Params.ParamByName("pBody")).AsOraBlob.LoadFromFile(EditBody.Text); или ...AsOraBlob.Clear;
Это создание блоба на сервере или клиенте? Скорее на сервере, хотя...


 
vecna ©   (2005-11-22 11:05) [7]

> TOraParam(Params.ParamByName("pBody")).AsOraBlob.LoadFromFile(EditBody.Text);

такой вариант действительно будет работать только с in/out. но с этим проблем нет - это понятно.


 
Desdechado ©   (2005-11-22 11:39) [8]

погляди здесь http://www.stlport.com/download.html
это библиотека прямого доступа на C, там и примерчики есть


 
Pazitron_Brain ©   (2005-11-22 11:45) [9]

mailto: oci.base.delphi

Выполняю запрос...



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

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

Наверх




Память: 0.49 MB
Время: 0.031 c
2-1132598088
Tapok
2005-11-21 21:34
2005.12.11
Как узнать размер класера?


3-1130055239
ViktorZ
2005-10-23 12:13
2005.12.11
Ошибки не выдает ,но и не делает того, что надо


2-1132756782
filh
2005-11-23 17:39
2005.12.11
gzip


2-1132400297
Volfram
2005-11-19 14:38
2005.12.11
Проблема с MediaPlayer


14-1132596408
vecna
2005-11-21 21:06
2005.12.11
OCI