Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.47 MB
Время: 0.036 c
8-1081016008
Forelli
2004-04-03 22:13
2004.06.13
Как вызвать Windows кую настройку громкости


14-1085659720
Вячеслав
2004-05-27 16:08
2004.06.13
Delphi+Autocad


6-1082816945
Yegorchic
2004-04-24 18:29
2004.06.13
Доступ к файлам по FTP...


1-1085905033
ilnarab
2004-05-30 12:17
2004.06.13
С помощью OpenDialog-а открыть папку


14-1085566752
wnew
2004-05-26 14:19
2004.06.13
Совсем загнулся сайт:(