Імпорт таблиць dbf до Access
Є проблема. До таблиці Access 2002 імпортуються файли Dbase IV, використовуючи DAO 3.6 версії. При встановленні на комп Delphi 6, та ж операція неможлива, Access видає помилку "Індекс не знайдений". Пробував у реєстрі копатися, виправляти гілки соотв. - Не допомагає. Забираю Delphi 6 – все працює. Де що виправити щоб Access працював спільно з Delphi?
не став BDE, тоді воно буде працювати за старими методами. але краще виправте помилку в програмі, десь ти не враховуєш індекс (наприклад ті файли звідки йде завантаження скопійовані, тільки dbf без лежачих рядом індексів. а ознака індексації у файлах не знято).
Справа в тому, що BDE не хоче не ставитися. А потім, якщо я користуватимуся стандартними компонентами Delphi доступу до даних, то я розумію що вони без BDE не працюють. Щодо другого варіанту, де копіюються індекси, теж не працює. Помилку видає (зараз точно не пам'ятаю). Справа ще в тому, що в коді програми, де відбувається імпорт взагалі не вказується індекс (синтаксис не передбачає)
> Справа в тому, що BDE не хоче не ставитися може бути, не звертав спеціально на це уваги, але начебто була там при установці така галочка "встановити BDE", або це раніше було на старіших версіях дельфей. у будь-якому випадку це неправильний варіант, на зразок жарту. помилку виправити ефективніше.
> А потім, якщо я буду > користуватися стандартними компонентами Delphi доступу до даних > то я розумію що вони без BDE не працюють. неправильно розумієш, є купа не менш стандартних компонентів для бд яким не потрібен BDE.
> Щодо другого варіанта, де копіюються індекси, теж не працює. тобто. то що воно так робилося я вгадав? ;).
> Помилка видає (зараз точно не пам'ятаю). записуй, якщо незапам'ятовуєш. помилка прямо вказує (якщо можливо) те що від чого відбувається.
> Справа ще в тому, & gt; що в коді програми, де відбувається імпорт, взагалі не вказується > індекс (синтаксис не передбачає) таблиця відкривається? (може ти її там просто копіюєш як файл не відкриваючи) якщо так індекс підключається (намагається), якщо є ознака індексованості у файлі (якщо не знаходить/нестандартний індексний файл/і.т.д. дає помилку). і начхати на синтаксис.
Ще раз повторюся, що у мене все працювало і я використовую команду DoCmd.TransferDatabase(TransferType, DatabaseType, DatabaseName, ObjectType, Source, Destination, StructureOnly, StoreLogin) там взагалі ні про які індекси немає і промови. Швидше за все це борланд (інпрайс) встановлює свої драйвера і програма посилається на них. Мені просто треба, щоб Access2002 працювала і Delphi6 теж. Від BDE відмовитися не вдалося, інакше вона не ставиться. Робити завантаження з різними операційними системами вважаю теж не правильно, тобто. обхідний варіант
> Ще раз повторюся, що у мене все працювало і я використовую ще раз повторюся, з BDE і без різні методи для роботи через теж команди. тобто. на рівні самого двигуна. якщо є BDE, то працює через нього.
Значить, не встановлюємо BDE?
тобі вирішувати, але я б пріорететніше поставив завдання про знаходження/викорінення помилки в програмі.
Але чому ж помилка? Мені в Access не потрібні індексні файли, адже воно все працювало. Мені головне, щоб ці дві системи повинні працювати паралельно. У мене раніше були подібні (правда без Д.) але я обходився іншими способами, тобто. не виправляючи код. Ну чи, які скажемо команди в Access (якщо є) імпортують файли, використовуючи індекси?
> Але чому помилка? Якась у насказка про білого бичка виходить, на мою я вже кілька разів все пояснив.
> Мені в Access не потрібні індексні файли не потрібні не використовуй. (відключи)
> адже воно все працювало. Тому що двигун тобою використовуваний сам у свою чергу використовував інші драйвера. що змінилося під час встановлення BDE. а втім див. 1 висловлювання.
> Мені головне, щоб ці дві системи повинні працювати > паралельно. У мене раніше були подібні (правда без Д.) > але обходився іншими способами, тобто. не виправляючи код. твої проблеми (мені наприклад треба щоб кожен день на роботі був днем получки. ;о)), кого б заради цього "виправити"? ;)
> Ну чи, які скажемо команди в Access (якщо є) імпортують > файли, використовуючи індекси? вони все. намагаються, ось реакція на незнайдений може бути різною. (різні ісами теж поводяться по-різному)
Гаразд, не будемо за рибу гроші. Ясно, що це не я винен :-) Не знаю, поки не знайшов, де індекси відключити.
> Якби знав не питав, та й ти б туманно так не відповідав би, > якби точно знав я то знаю, як мінімум 3 варіанти відключення індексу. але ти це й не питав.
так розмова "за жисть", замість опису процесу, типу файлів/підключення, проблеми загалом. (єдино цінна інформація що файли копіюються без індексних і то це я здогадався а не у вихідних даних "проблеми")
а туманні відповіді у мене виключно на туманні запитання (сподіваюся;), люблю поговорити туманно (особливо із незареєстрованими ніками). розвага у мене така.
Ну, поки не зареєструвався, тільки вперше на форумі, на цьому. І мене призвела до цього потреба (див. вище), т.к.мені потрібно поставити Дельфі і ще працювати в Акцес (див. вище) Ну якщо знаєш способи відключення цих індексів, то скажи будь ласка, або як обійти цю проблему. Хоча боюся справа в тому, що якщо може бути цю проблему усунення, можна отримати іншу, при інших операціях в Accesse буде видаватися інша помилка. Т.к. драйвер залишиться той же. Швидше за все, у нього більш стара версія, ніж я використовую. Щодо файлів. Файли імпортуються Dbase IV. Рядок коду вказано вище. (TransferDatabase). Що хочеш дізнатись ще?
> Ну якщо знаєш способи відключення цих індексів, то скажи будь ласка, або як обійти цю проблему. Це треба до копіювання робити (поки що індекс є, "обійдеш" "проблему") DbiDeleteIndex - видалення поки що все нормально. (те саме можна у компанента) DROP INDEX [index] ON [table] - природно теж поки що нормально, у будь-якому sql движку який підтримує дані таблиці.
це можна після (до відкриття "штатними"/твоїми засобами) DbiRegisterCallBack - це при втраті файлів індексів, в хелпі є приклад зняття "індексності" відкрити таблицю через VFP ODBC драйвер, він знімає ознаку при незнайденості потрібних файлів. (але блокує файли на видалення до "розвантаження" двигуна ;) обнулити байт 28 (за правильним рахунком ;о) у файлі ("хакерський" спосіб, не вітається)
> Що хочеш дізнатися ще? Все що вважаєш за потрібне поділити. якщо цього не вистачить для позначення проблеми, то це ми вже проходили. ;о)) наприклад те, що ти сказав, що пробував копіювати і індексні файли, це добре, але не написав назви. а за назвами (прикладів) можна сказати а чи знайде взагалі такі (при розбіжності імен таблиць/індексів, або російські назви і т.д. і т.п. я навіть не знаю що можливо буде, багато варіантів, а тобі длярішення це потрібно (або розмова за життя?), тобто пиши процес по максимуму але не "розтікаючись" думкою (як я зараз ;о))))