IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
bachin
- Сообщения: 16
- Зарегистрирован: 20 апр 2006, 17:17
Сообщение
bachin » 12 дек 2006, 18:55
наступил на странные грабли - незнаю с какой стороны подступиться...
минимизировал насколько смог:
такой себе тестик:
function CreateManager: IInterface;
var
db1: fb.db;
s1, s2, s3: string;
begin
load(); // динамическая загрузка fbembed.dll
db1 := fb.db.create('E:\xxxxxxx\xxxxxxx.wdb');
s1 := 'test1';
s2 := 'test2';
if fbu.select(db1, 'select a3 from t1 where a1 = ? and a2 = ?',
[s1, s2], [ref(s3)]) then
Writeln(fbu.blob2data(db1, s3));
end;
пишем програмку с соответствующей ф-цией...
program storage;
.............
begin
CreateManager;
end.
теперь либу:
library storage;
.............
end.
так вот проблема заключается в том, что если я это вызываю из либы, то isc_dsql_fetch мне возвращает 100. пытался игнорировать - понятное дело мусор получаю в резалте. с прогой - все нормально, 0 и данные честные. есть идеи куда копать? (fbembed.dll)
-
bachin
- Сообщения: 16
- Зарегистрирован: 20 апр 2006, 17:17
Сообщение
bachin » 13 дек 2006, 10:04
Dimitry Sibiryakov писал(а):100 это EOF. Нет записей в результате выборки. Проверяй присваивание параметров и их значения.
да в том то и дело, что получаю не что-то неосмысленное, а сотку (больше привык к NO_MORE_DATA)... код тот же самый. параметры сейчас статически присваюваю. это даже не копипейст, а тот же самый модуь.
-
Dimitry Sibiryakov
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Сообщение
Dimitry Sibiryakov » 13 дек 2006, 12:51
А с нулл-флагами ничего не начудил? А то они имеют приоритет и втыкать в них неинициализированные указатели чревато как раз такими забавными фокусами...