powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Paradox и blob, чтение, запись blob
1 сообщений из 1, страница 1 из 1
Paradox и blob, чтение, запись blob
    #35076827
Black Moon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
использую ADO, файлы *db, *dbf. Нужно получить доступ к blob полям в таблице.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
#import "libid:EF53050B-882E-4776-B643-EDA472E8E3F2" no_namespace 

#define DBASE               "Driver={Microsoft dBASE Driver (*.dbf)}; DriverID=277; Dbq=%s;"
#define PDOX                "Driver={Microsoft Paradox Driver (*.db )}; DriverID=538; Fil=Paradox 5.X; DefaultDir=%s; Dbq=%s; CollatingSequence=ASCII;"

char con[MAX_PATH];
sprintf_s(con, MAX_PATH, PDOX, _path, _path);

_ConnectionPtr cn("ADODB.Connection");
cn->Open(con, "", "",  0 );   

_RecordsetPtr rs("ADODB.Recordset");
rs->PutRefActiveConnection(m_cn);
_variant_t v;
try
{
    rs->Open("SELECT * FROM [block.db]", vtMissing, adOpenKeyset, adLockOptimistic, adCmdText);     
// в таблице  6  полей,  4  и 6е - blob
    while (!rs->EOF)
    {               
        v = rs->Fields->Item[1l]->Value;
                v = rs->Fields->Item[2l]->Value;
                v = rs->Fields->Item[3l]->Value;
                v = rs->Fields->Item[4l]->Value;
                v = rs->Fields->Item[5l]->Value;
                v = rs->Fields->Item[6l]->Value;
            
        long s =  0 ;
        rs->Fields->get_Count(&s);

        }
    rs->Close();        
}
catch (_com_error& e)
{       
}


Так вот получить доступ к 4му или 6му полу (blob) не получается. Возникает ошибка Не удается найти объект в семействе, соответствующий требуемому имени или порядковому номеру.
Если же SQL вида
Код: plaintext
SELECT NomSkw FROM [block.db]
(В Таблице есть поле NomSkw(blob), его номер - 6й (или 5й, если считать с нуля).)
То выдается ошибка [Microsoft][Драйвер ODBC Paradox] Слишком мало параметров. Требуется 1.

И
Код: plaintext
1.
2.
long s =  0 ;
rs->Fields->get_Count(&s);
выдает количество полей 4 (без blob), а Не 6.


Как к ним доступ получить? Спасибо.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Paradox и blob, чтение, запись blob
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]