Извлечение информации из ячейки

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Извлечение информации из ячейки

Сообщение monaenkov » 07.04.2006 (Пт) 14:05

Всем ПРИВЕТ !!!!
Уважаемые , прошу Вашей помощи в разрешении следующего вопроса :
существует база данных из которой делается выборка сохраняется в файле с разширением txt , а затем разпечатывается. Всё работает нормально НО, но из одной ячейки информация считывается не полностью, то есть есть ячейка в таблице содержащая информацию по описанию и из неё берётся часть информации , а полностью информацию извлеч из неё не могу. Возможно это связанно с параметрами Recordset.
Подскажите ПОЖАЛУЙСТА как нужно поступить, очень нужно, работа встала - начальство не довольно.
Зараннее благодарен. :?:
monman

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2006 (Пт) 14:07

Покажи, как выгружаешь рекордсет.
Lasciate ogni speranza, voi ch'entrate.

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 07.04.2006 (Пт) 15:07

a$ = Data1.Recordset(TXG_TXT)
monman

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2006 (Пт) 15:09

SP6 установлен? Возможно в глюках дело.
Кроме того, я бы выгружал все-таки вручную, проходом по рекордсету.
Lasciate ogni speranza, voi ch'entrate.

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 07.04.2006 (Пт) 15:12

SP6 - не установлен
что Вы имеете в виду "я бы выгружал все-таки вручную" ???
monman

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.04.2006 (Пт) 15:14

res = vbNullString
Do Until rs.EOF
For Each fld In rs.Fields
res = res & fld.Value & ","
Next fld
res = res & vbNewLine
rs.MoveNext
Loop
Lasciate ogni speranza, voi ch'entrate.

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 07.04.2006 (Пт) 15:16

можно по подробнее
monman

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 07.04.2006 (Пт) 15:33

а какой тип данных у этого поля в базе данных :?:

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 08.04.2006 (Сб) 8:32

в DBF-навигаторе тип ячейки определяется как Character
monman

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 08.04.2006 (Сб) 15:03

должно все извлекаться, хотя я точно не помню, но может есть какие-то ограничения у драйверов ODBC, которыми ты возможно пользуешься :?

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 13.04.2006 (Чт) 14:29

Последний раз редактировалось Al Khamid 18.11.2007 (Вс) 0:45, всего редактировалось 1 раз.

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 03.05.2006 (Ср) 12:04

Доброе время суток , Уважаемые любители VB.
У меня возник вопрос по работе с БД в VB в связи с чем обращаюсь к Вам за помощью.
Ситуащия такая - существует старенькая БД написанная на Clipper , я сделал внешний обратотчик который по нужному запросу делает определённую выборку и выводит результаты в форму из которой в дальнейшем он может быть распечатан или сохранён. Всё работает нормально , все довольны - но есть но . А но заключается в следующем - в этой БД есть две идентичные таблицы состоящие из двух полей. Первое поле - индексное , с ним всё в порядке , а вот второе поле имеет тип character. В одной из таблиц длинна этого поля 188 и из него информация извлекается полностью , а во второй таблице длинна поля 24 , следовательно 24 знака и берутся - а с остальным проблемма. Вот и озвучился вопрос - КАК ИЗВЛЕЧ ВСЮ ИНФОРМАЦИЮ ИЗ ЭТОГО ПОЛЯ ?
Поправлюсь сразу же - информация в нём хранится гораздо больше 24 знаков.
Я обращался с этим вопросам на различные форумы , но вопрос так и остался решённым до конца.
Используя прямое обращение к файлу и DBF класс - это всё реализуется но при этом время обработки практически не ограниченно , так как база довольнотаки большая.
Конечно можно изменить размерность поля , но это не желательно так как БД пользуюсь не только я , каждый день происходит обмен данными между базами и внесённые изменения в размер поля дадут ошибку при загрузке файлов в другие такие же БД.
Поэтому я и обращаюсь к Вам с этим вопросом - КАК РЕАЛИЗОВАТЬ ПОЛНОЕ ИЗВЛЕЧЕНИЕ ИНФОРМАЦИИ ИЗ ПОЛЯ БАЗЫ ДАННЫХ.
Зараннее благодарен за проявленное внимание к моей проблемме.
Юрий. :?:
monman

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.05.2006 (Ср) 12:14

Можешь объяснить, как такое возможно? Длина поля 24 символа, но на самом деле в нем хранится больше. Я что-то сообразить не могу.
Lasciate ogni speranza, voi ch'entrate.

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 03.05.2006 (Ср) 12:19

Последний раз редактировалось Al Khamid 18.11.2007 (Вс) 0:50, всего редактировалось 1 раз.

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 03.05.2006 (Ср) 17:28

Уважаемые !!!!
Я ни чуть не издеваюсь , но это действительно так.
Вот что нарыл в старых записях предыдущих админов "В формате dbf под Clipper есть одно существенное отличие. Длина строкового параметра "C" не 255 а 65535 . Это длинные Char поля Клипперовских баз." . Как это понять не знаю.
Подскажите как прикрепить файл - скину образещ.
Может я что не так говорю - сами посмотрите.
monman

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.05.2006 (Ср) 17:44

Нажми кнопку Изображение и будет тебе щастье.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 03.05.2006 (Ср) 17:56

Таблица
У вас нет доступа для просмотра вложений в этом сообщении.
monman

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.05.2006 (Ср) 18:05

Ну... dbf. Обычный. Две колонки, число на 9 символов и строка на 280.
Так говорит dbf viewer. А excel да, обрезает... и обрезает он по 24, а 24 - это 280-256... эх...

Вывод: юзать dbf viewer...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 03.05.2006 (Ср) 18:23

Что делать то ???
По конкретнее можно ???
monman

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.05.2006 (Ср) 18:37

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

monaenkov
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 07.04.2006 (Пт) 11:12

Сообщение monaenkov » 03.05.2006 (Ср) 18:44

Спасибо за прогу , а программно не получится ни как - я правильно понял?. В выборке 10-20 тысяч строк . Как быть ?
monman

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.05.2006 (Чт) 6:06

Найти провайдера для dbf, который понимает текстовые поля такой длины. Я не знаю, какой это провайдер, но он вероятно есть.

http://www.sql.ru/forum/actualthread.as ... 99#2091241 - там упоминаются нужные провайдеры вроде...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 04.05.2006 (Чт) 11:38

GSerg писал(а):Найти провайдера для dbf, который понимает текстовые поля такой длины. Я не знаю, какой это провайдер, но он вероятно есть.


А еще есть утилитка "DBF to MDB", которая делает из DBF-ки MDB-шку.
Работает так-же и из командной строки.
Живет на сайте http://www.whitetown.com.
Лекарство к ней есть в интернете.

То бишь быстро и просто преобразуешь DBF-ку в MDB-шку, а далее уже все как обычно.

Из ее readme:

The 'DBF to MDB (Access)' program allows you to convert your dbf files to MDB (Microsoft Access) format.
MDB format is the most frequently used format, but sometimes Access is unable to open DBF files or damages them.
Besides, MS Access does not understand long Character fields (more than 255 characters).
The 'DBF to MDB (Access)' program decides these problems.
The program supports dBase III, dBase IV, FoxPro, VFP and dBase Level 7 formats.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList  
cron