Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2007, 13:23   #11
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от JordanS Посмотреть сообщение
БД dBaseIV, тип поля Character длина 625 символов, как умудрились разработчики это сделать не знаю, а select работает только не показывает информацию в полях, следующих за этим длинным полем. Вот так.
Если ты говоришь, что такие поля можно делать в dBaseIV, то, я думаю, их родной ODBC драйвер должен такие поля обрабатывать.
Попробуй сконнектиться через него.

PS: Сам я больше с FoxPro работал.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 31.08.2007, 14:33   #12
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Pitbull Посмотреть сообщение
как єто нестандартній DBF? Обїясните плиз....Я такого еще не слішал....Как он создается?
Виноват, возможно, он стандартный для dBaseIV, как написал JordanS.
Я с dBaseIV вплотную не работал и ихних стандартов не знаю.

А теперь мои теоретические измышления. К практике они отношения не имеют.

Как создать нестандартный DBF файл? Рассматриваем DBF как обычный типизированный файл, в начале которого расписана структура типа записи согласно стандарту dbf. Заголовок делаем согласно стандарту, но в дескрипторах символьных полей считаем, что второй байт после байта длины поля показывает длину строки после 255 символа (в стандарте он отвечает за количество знаков после десятичной точки и в символьных полях, судя по всему, не используется), ну и соответственно вписываем туда соответствующее число. Это позволит нам увеличить длину символьной строки еще на 255 символов. Ну, а дальше работаем непосредственно с записями, разбирая их в соответствии с приятыми нами условиями.

Примерно так. IMHO, Должно сработать.

Еще раз повторяю, что это только мои предположения. Не более. И к практике никакого отношения не имеют.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 03.09.2007, 16:49   #13
JordanS
Пользователь
 
Регистрация: 28.08.2007
Сообщений: 10
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Я для работы с dbf давно юзаю Advantage TDatset Descendant. Крутая вещь.
Вопрос: какие файлы надо перенести на другую машину, чтобы программа с использованием Advantage TDatset Descendant работала?

Перенес одну библиотеку ace32.dll однако результат неутешительный - ошибка с предложение отправить отчет во всеми любимую кампанию.
JordanS вне форума Ответить с цитированием
Старый 03.09.2007, 16:55   #14
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Никакие файлы переносить не нужно. Скорее всего у тебя не указан путь к базе. В дизайн-тайме ты его указал и прога ищет базу в том же каталоге. Напиши при создании формы что-то типа
Код:
AdsConnection1.ConnectPath:=ExtractFilePath(Application.ExeName)+'\DB';
и положи базу в папку DB внутри каталога с прогой...
_SERGEYX_ вне форума Ответить с цитированием
Старый 04.09.2007, 14:26   #15
JordanS
Пользователь
 
Регистрация: 28.08.2007
Сообщений: 10
По умолчанию

Разобрался
Для интересующихся:
Для работоспособности программы с использованием Advantage TDatset Descendant, при установке на клиентскую машину, где не был установлен Advantage TDatset Descendant, необходимо выполнить следующие манипуляции:
1. Скопировать ace32.dll, adsloc32.dll в директорию программы
2. В директории программы создать текстовый файл ads.ini и написать в нем
[SETTINGS]
MTIER_LOCAL_CONNECTIONS=1
вот вроде и все
В режиме работы LOCAL проверено!
JordanS вне форума Ответить с цитированием
Старый 20.06.2008, 09:35   #16
kuz'ka
Новичок
Джуниор
 
Регистрация: 20.06.2008
Сообщений: 1
По умолчанию

найдите статью про заголовки дбф почитайте структуру
а длянные поля делаютя следующим образом в заголовке дбв есть байты которые заразарвированы под описание типа поля, длины поля, и разрядности после запятой. Так вот в первом случае указывается С в третьей позициии акзывается величина кратная 256 во второй остаток например нужно получить поле длиной 800 с первой позицией думаю всем понятно что С вторая 32 третья 3
итого получаем 3*256+32 = 800 вот такие пироги и таких чдестных вещей в структуре дбф не мало

а стандартный драфвер делает так смотрит в длину поля видит 32 разбивает строки с учетом этой длины и получается полная лажа на выходе так что такие вот пироги пришлось писать свою прогу которая считывает дбф разбивает его на строки правильно и загручает куда нужно (в моем случае фаерберд)

Последний раз редактировалось Alex21; 20.06.2008 в 11:39. Причина: объединил
kuz'ka вне форума Ответить с цитированием
Старый 21.06.2008, 08:13   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от kuz'ka
а длянные поля делаютя следующим образом в заголовке дбв есть байты которые заразарвированы под описание типа поля, длины поля, и разрядности после запятой.
kuz'ka, а можете выложить пример подобного файла ?

вообще-то, я ПОЛНОСТЬЮ согласен с Andrei - это НЕСТАНДАРТНЫЙ dbf файл!!

и ещё - написать парсер для конкретного DBF с заданной структурой очень просто, это можно сделать ручками, без использования каких-либо DB компонент буквально за полчаса...

to JordanS, если Ваш чудо файл не очень большой и не секретный, может запакуете и выложите?..
впрочем, если проблема решена с помощью Advantage TDatset, то, в этом для Вас уже особого смысла нет :-) И, кстати, отпишитесь, получилось ли решить проблему...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СЧЁТЕСЛИ по 2 и более критериям Gadar Microsoft Office Excel 6 27.05.2008 09:25
Более 4 миллиардов MAKTE Общие вопросы C/C++ 2 16.05.2008 20:11
stringgrid поместить строку более 255 символов SeЯgey Помощь студентам 2 07.05.2008 16:41
тип поля для хранения текста > 255 символов komex БД в Delphi 4 23.09.2007 12:38
массивы более 64 кб Alar Паскаль, Turbo Pascal, PascalABC.NET 1 30.10.2006 14:25