Текущий архив: 2004.06.13;
Скачать: CL | DM;
Внизпроблема с UDF Найти похожие ветки
← →
Alexander Smith © (2004-05-25 00:24) [0]Здравствуй, уважаемый All! Помоги чем сможешь.
Была поставлена задача написания функции, читающей CSV в InterBase таблицу с помощью UDF.
Уже дошел до маразма, таблицу задал жестко с помощью DataModule.
в DLL пишу следующее.:
var
F_IntegerResult: Integer;
function CSV2IB(var CSV_F_Name): PInteger; cdecl; export;
var
...
begin
...
While (NOT(EOF(F))) and (...) do
begin
IBTable1.Last;
IBTable1.Insert;
...
while (..)//пока не считали всю строку грубо-говоря
begin
IBTable1.FieldByName(Fields[i]).AsString:=ThisField;//текущее
поле текущей строки из CSV
...
end;
IBTable1.Post;
end;
...
Result:=@F_Integer_Result;
...
end;
В IBConsole пишу.:
DECLARE EXTERNAL FUNCTION CSV2IB6
CSTRING(255) CHARACTER SET WIN1251, CSTRING(255) CHARACTER SET WIN1251
RETURNS INTEGER BY VALUE
ENTRY_POINT "CSV2IB" MODULE_NAME "TT_DLL.DLL";
//вызов делаю так.:
SELECT FROMFILETOTABLE("z:\KSQL\t3\source.txt", "") FROM PROBA WHERE 1=1;
может я чего не понимаю, или УДФ вообще для этого не предназначены ?..
З.Ы. вылетает с ошибкой по дисконнекту, таблица не заполняется.
← →
jack128 © (2004-05-25 00:36) [1]если я правильно понял,то ты в UDF просто конектишся ктой же базе из которой эта удф вызвана? Я далеко не уверен, что такое проходит безнаказанно..
> function CSV2IB(var CSV_F_Name): PInteger;
> RETURNS INTEGER BY VALUE
ты уверен, что этого хочешь?
← →
Alexander Smith © (2004-05-25 00:39) [2]по сути у меня CSV2IB - процедура, и мне вообще ретурн не нужен. но без него не берется запрос..
← →
jack128 © (2004-05-25 00:44) [3]так я мое предположение верно? ИМХО проблема в этом..вообще, что странное ты делаешь, проще и надежнее написать простенькую прогу которая делает, то что ты хочешь..
← →
Alexander Smith © (2004-05-25 00:46) [4]Будь моя воля, я бы вообще дельфи не запускал для этого.. :-)
← →
Alexander Smith © (2004-05-25 01:06) [5]2wisekaa спасибо за твои советы - помогло. По squid - мыльни мне - договоримся о времени, в онлайн режиме вместе все настроим.
С уважением,
Александр Панютин.
Страницы: 1 вся ветка
Текущий архив: 2004.06.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.036 c