Главная страница
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.033 c
3-1085006232
Bes
2004-05-20 02:37
2004.06.13
"соединение" нескольких баз...


14-1085379984
Dragon_DE
2004-05-24 10:26
2004.06.13
Откуда можно скачать Delphi 7?


14-1085900129
YurikGl
2004-05-30 10:55
2004.06.13
Славянофилам - посвящается


9-1075981475
Hex0DesiMaL
2004-02-05 14:44
2004.06.13
Трейнеры


1-1086244146
Vlad Oshin
2004-06-03 10:29
2004.06.13
Какое время указывается в TSearchRec? создания? посл. обращения?