Главная страница
    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.46 MB
Время: 0.041 c
1-1131626557
BFG9k
2005-11-10 15:42
2005.12.11
Событие клика по переключателю в ListView


3-1130134593
Zhekson
2005-10-24 10:16
2005.12.11
как скопировать все записи базы изменив один параметр?


2-1132571683
Андрей111
2005-11-21 14:14
2005.12.11
Перехват изменения состояния окна!


2-1132691867
Stive
2005-11-22 23:37
2005.12.11
Изменение размеров панелей как в Total Commander


4-1129098748
MEDJIK
2005-10-12 10:32
2005.12.11
Железо





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский