![]() |
|
|
![]()
|
|
| Dr.Drunk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 12.1.2004 Где: Волжский Репутация: нет Всего: нет |
Доброго времени суток.
Собственно сабж. Есть dbf-ки, есть моя прога. dbf-ки, которые делаю сам открываются нормально. dbf-ки, допустим с 1С, при открытии выдает: "Invalid variant type conversion" Подключаюсь через OLE DB Provider for ODBC Driver. --------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why! |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Кинь мне на мыло небольшую dbf-ку кот. глючит и стукни в ПМ (я на мыло не часто хожу). Я гляну.
А так с лету можно только предположить что в числовое поле каким-то макаром попал символ. Добавлено @ 06:42 И еще укажи версию файла. А в Database Desktop пробовал открывать? Ругается, нет? |
|||
|
||||
| Dr.Drunk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 12.1.2004 Где: Волжский Репутация: нет Всего: нет |
ТоляМБА, самое смешное, что после этой ошибки таблицу он открывает.
Database Desktop не пробовал. Версия скорее всего 3. Это сообщение отредактировал(а) Dr.Drunk - 20.1.2006, 07:57 --------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why! |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Дык почему у меня мыло-то пустое??? Я бы у себя посмотрел - если у меня не будет глючить будем дальше разбираться.
Добавлено @ 08:15 Почему? Это так долго? Или ты ее снес? |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Dr.Drunk
1. Проверь на наличие Memo-полей и файлов тоже. 2. Через ADO работать с dbf - иметь некислые тормоза и кучу проблем. Причины - в архитектуре. ADO всегда работает через SQL-запросы. Лучше возьми что-либо типа TDbf/Halcyon. Это IMO правильное решение проблемы. |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Вот если бы ты попробовал сразу открыть через Database Desktop, то увидел предупреждение: ‘Production index file missing, corrupt or cannot interpret index key’ что означает примерно следующее: ‘данная табла содержит индекс но ему писец или нет файла с индексом’. dBase хранит индексы в файлах с расширениями .mdx или .ndx (в зависимости от вида индекса) имя индексного файла такое же как у dbf-файла.
1-й выход правильный и быстрый: 1-й вариант (если нужны индексы) копируй индексные файлы с машины на которой брал .dbf 2-й вариант (если индексы не нужны) при выгрузке из 1С если это возможно укажи, чтоб индексы не выгружались (если такая фича там есть – я в глаза не видел 1С) и проверь будет ли ругаться Дэлфя. 2-й выход геморройный и долгий (если файлов много, но обработать их нужно только один раз и 1-й выход невозможен): При открытии через Database Desktop при выходе предупреждения нужно выбрать ‘Open and Detach’, чтобы она убила индекс (только не знаю надо потом пересохранять или нет). 3-й выход (если 1-й не возможен а 2-й не подходит) написать прогу, которая будет убивать индексы. Кстати, у меня 6-я Делфя и при коннекте она сразу выдала мне сообщение ‘[Microsoft] [Драйвер ODBC dBase] Индекс не найден’ и открыть таблу так и не дала. Но когда я убил индекса через Database Desktop табла открывалась без проблем. Теперь по кодировке: ни какой прогой кроме Microsoft Visual FoxPro 6.0 я не смог прочитать что там написано, а в Фоксе указал кодировку Windows Russian и всё прочитал. И еще вопрос не по теме: это по приколу цифирь в чарах хранить? Ну ладно в других полях могут быть и буквы и цифирь, но не в ID же. Добавлено @ 09:55 Кстати Database Desktop пишет версию dBase IV |
|||
|
||||
| Dr.Drunk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 12.1.2004 Где: Волжский Репутация: нет Всего: нет |
ТоляМБА, это вопрос уже к 1Сникам, скорее всего там в конфигураторе выбирается что хранить число или чар, вот они и не стали заморачиваться.
Так не хотелось с индексами заморачиваться придется. Database Desktop не разу не пользвался, поэтому и мучаюсь Это сообщение отредактировал(а) Dr.Drunk - 20.1.2006, 10:29 --------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why! |
|||
|
||||
| bas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
C mdx полностью согласен. Но с .ndx можно даже и не думать, в хидере dbf об этом индексе никаих упоминаний нет. Добавлено @ 10:19 И не пользуйся - вредная штука. |
|||
|
||||
| Dr.Drunk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 12.1.2004 Где: Волжский Репутация: нет Всего: нет |
ТоляМБА, да с индексом промашка вышла, щас скину
ADOTemp.ConnectionString:=Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Mode=ReadWrite при смене на dBase ODBC ошибка остается. Вот код
Это сообщение отредактировал(а) Dr.Drunk - 20.1.2006, 10:27 --------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why! |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Dr.Drunk Вот ты скинул индексный файл и я сразу все понял (правда тебе от этого легче не будет
CDX - это расширение индексных файлов FOX (FoxPro или FoxBase - точно не знаю). Поэтому то в фоксе у меня кодировка нормально и прочиталась. Жаль только я с фоксом не работал и помочь тут не смогу. Единственное только могу сказать: или проси у них dBase-овские файлы или убивай индексы у этих (если для твоей проги они не нужны) Добавлено @ 12:41 В Дэлфе он файл нормально открывает, правда при попытке изменения ругается что нет индексного файла для dBase а в Обджект инспекторе в списке индексных файлов естественно пусто. |
|||
|
||||
| Dr.Drunk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 12.1.2004 Где: Волжский Репутация: нет Всего: нет |
ТоляМБА, спасибо, буду индексы бить, они особо не нужны )))
--------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why! |
|||
|
||||
| ТоляМБА |
|
|||
![]() Котэ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1607 Регистрация: 15.12.2004 Репутация: 3 Всего: 252 |
Через BDE пробовал убить с помощью SQL - отлично убиваются.
ЗЫ. Кстати в BDE и с кодировкой всё Ок! |
|||
|
||||
| Dr.Drunk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 12.1.2004 Где: Волжский Репутация: нет Всего: нет |
ТоляМБА, BDE - это конечно хорошо. Но мне хочется через OLE сделать, чтобы потом с БДЕ не носиться
Это сообщение отредактировал(а) Dr.Drunk - 24.1.2006, 10:04 --------------------
_Theory_ is when you know everything but nothning works._Practice_ is when everything works but no one knows why._IN THIS PLACE_ we're combining theory and practice -nothing works and no one knows why! |
|||
|
||||
| bas |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
Dr.Drunk
Убивать индексы и не надо просто используй вместо драйвера DBase- Microsoft Dbase VFP or Microsoft FoxPro VFP |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |