Проблема з версіями драйверів ODBC
Є такі пакети від MS c назвами MDAC і Jet (раніше, до версії MDAC 2.6 все це йшло в одному флаконі) # XA0; - так ось в цих пакетах містяться всі ADO і ODBC драйвера в MS-продуктам.
Скачується безкоштовно з сайту MS остання версія і встановлюється.
І ще. Киньте ODBC, працюйте з MS Access через ADO.
ODBC давно вже не має власних драйверів для деяких баз, зокрема для Access з яким працює Jet, а в ODBC-шном "драйвер" просте перевизначення викликів на нього. (+ Ще там частину яка відповідає за ODBC-шний синтаксис. Але це до справи не відноситься)
т.что для того щоб була однакова версія простий постав останній SP Jet-а (8-й зразок, пошукай на мелкософта).
а ось перенести драйвера з однієї системи на іншу ти врядли зможеш, та й неправильно це, т.что не варто навіть починати "заморочуватися".
з приводу помилки, з довідки Jet
Занадто мало параметрів. потрібно <число>. (Помилка 3061)
Для цього запиту з параметрами потрібно вказати іншу кількість параметрів. Забезпечте необхідне число параметрів і знову запустіть запит.
У деяких випадках дане повідомлення виникає, коли в якості запиту з параметрами інтерпретуються невідомі імена полів або вирази. Перевірте, що імена полів, що містять пробіли або знаки пунктуації, укладені в квадратні дужки [].
> Але це до справи не відноситься
хоча ні, це може відноситься до справи, чисто теоретично. візьмемо 2 варіанти установки старий ще з власним драйвером і "рідним", робочим синтаксисом, і новий в якому після перетворень запиту під синтаксис Jet запит передається в нього. а у нього інші резервовані поля, і щось може бути банально пропущено. а в Jet / Access незрозумілі веши на місці полів / умов можуть інтерпретуватися як імена параметрів. ось і розбіжність їх кількості.
> І ще. Киньте ODBC, працюйте з MS Access через ADO.
це точно, буде краще без посередників, тільки уточнення. через ADO + Jet.
Я і так працюю через ADO. При прямому зверненні до бази через Jet швидкість буде вище, ніж через ODBC?
навряд чи. занадто вже рідко виконуються команди запитів, і занадто вже маленька різниця між викликом процедури і викликом процедури всередині іншої процедури.
швидкість не в цьому, а в алгоритмах і оптимальні методи роботи.
Якщо правильно налаштувати - порівнянна з BDE + Paradox (трохи поступається). Я про навігації за таблицями.
Зробив підключення через Jet - помилка пропала! Мабуть в новій версії драйвера ODBC новий синтаксис. Дякуємо!
Ще питання. Я за таймером відкриваю і закриваю таблицю для поновлення. У grid`е після цього поточна запис центрується по вертикалі, що не зручно якщо до поновлення поточна запис була наприклад внизу. як відключить це властивість?
> Як відключить це властивість?
не про це треба думати. а про те як зробити так щоб не довелося за таймером закривати і відкривати таблиці. це взагалі прерогатива користувача отримувати дані в той момент в який вони йому потрібні (а не в момент їх їм редагування наприклад.).
> В grid`е після цього поточна запис центрується по вертикалі,
> # XA0; що не зручно якщо до поновлення поточна запис була наприклад
> Внизу. як відключить це властивість?
Не варто боротися з психологічними заморочками.
> Не варто боротися з психологічними заморочками.