Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Извлечение информации из ячейки БД


Автор: monman 27.4.2006, 12:34
Добрый день Уважаемые !!!
Обращаюсь к Вам за помощью.
А помощь нужна в следующем:
есть БД написанная на clipper' е имеющая формат dbf(dBase III)
сответственно в ней есть таблица состоящая из двух полей с названиями
TXP_NUM (тип numeric , длинна 9) и TXP_TXT (тип character , длинна 700) - это если просматривать её через DBFNavigator , если подключить к Access' у то там видим так
TXP_NUM (Числовой) TXP_TXT (Текстовый, длинна 24)
в VB через Data View видно то же самое что и в Access.
А ТЕПЕРЬ САМОЕ ГЛАВНОЕ !!!
нужно извлеч информацию из TXP_TXT - всю информацию , а она берётся только в 24 символа  и всё.
Информация в ней хранится длинее 24 символов.
ЧТО ДЕЛАТЬ ?
ПОДСКАЖИТЕ ПОЖАЛУЙСТА !!!

 

Автор: Akina 27.4.2006, 13:13
Вообще-то бред какой-то...
Цитата(CA-Clipper 5.2 Technical Reference)

 Field (column) definitions

Код

     typedef struct _FIELD_
     {
        USHORT type;
        USHORT typeExtended;
        USHORT len;
        USHORT dec;
        USHORT area;
        FARP   sym;
     
        struct _FIELD_ * next;
     
     } FIELD;
     
     typedef FIELD far * FIELDP;

т.е. на длину текстового поля выделен 1 байт, и 700 туда при всем желании не лезет. 

Автор: monman 27.4.2006, 14:51
А с помощью Visual Basic ????
А по поводу того что бред согласен , только деваться не куда.
БД действующая и в ней каждый день работают , просто поступило
предложение сделать отчёт ( в котором как раз и фигурирует данная ячейка )
вот я этим и занимаюсь. smile 
Пока только что то не совсем получается.
А что ещё можете посоветовать ?
Зараннее благодарен.

 

Автор: Akina 27.4.2006, 15:34
Цитата(monman @  27.4.2006,  15:51 Найти цитируемый пост)
что ещё можете посоветовать ?

да просто открыть этот файл как бинарный да самостоятельно распарсить... или использовать "Класс для работы с DBF" - ищи в FAQ. 

Автор: monman 2.5.2006, 18:19
С использованием "Класса для работы с DBF" обработка затягивается на очень длительное время.
Какое именно сказать не могу , обрубил скустя 40 минут.
А вот как сделать :
да просто открыть этот файл как бинарный да самостоятельно распарсить... 
Подскажите пожалуйста.
Зараннее благодарен. 

Автор: Akina 3.5.2006, 09:38
Цитата(monman @  2.5.2006,  19:19 Найти цитируемый пост)
как сделать : да просто открыть этот файл как бинарный да самостоятельно распарсить... 

Открыть For Input.
Прочитать первые 32 байта, извлечь из них кол-во записей, длину одной записи и заголовка.
Прочитать заголовлк блоками по 32 байта, найти нужное поле, извлечь его размер и смещение.
Чиать записи, извлекать данные. 

Автор: monman 3.5.2006, 18:11
При этом скорость обработки будет такая же что и при работе с DBF классом.
А больше ни как ??? 

Автор: Akina 3.5.2006, 18:17
Цитата(monman @  3.5.2006,  19:11 Найти цитируемый пост)
При этом скорость обработки будет такая же что и при работе с DBF классом.

Да брось ерунду-то говорить... скорость извлечения сравнима со скоростью чтения-записи...

Не получается? брось мне DBF мылом, сделаю тебе конвертор в Аксесс или там в CSV. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)