Konstantine |
Отправлено: 19.04.2005, 16:01 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
делаю прогу, которая использует базу в mdb файле, и столкнулся с проблемкой — для добавления записей в таблицу пытаюсь дать запрос:SQL | INSERT INTO [User] (ID, Name) VALUES (2,'nvkld') | на который ADO ругаецца всеми немыслимыми выражениями...
кидаю этот запрос непосредственно в файл Access-а, он его конвертит к виду:SQL | INSERT INTO [User] ( ID, Name )
SELECT 2 AS Выражение1, 'nvkld' AS Выражение2; | — кто нибудь объясните — чё это значить, и как нормально добавить записи... (надеюсь с UPDATE нормально будет)
юзаю ADO, СУБД — Access 2003 (база в формате 2003, но в финале преобразую к 97)...
|
|
AVC |
Отправлено: 19.04.2005, 16:37 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Access 2000
Пишу:
Insert Into Table_Name (Field1, Field2) Values ('значение 1', 2)
И все работает.
Как ругается?
User — это имя таблицы? Нехорошее имя, лучше сменить. |
|
AVC |
Отправлено: 19.04.2005, 16:44 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Проверил. С [User] то же работает. |
|
Konstantine |
Отправлено: 19.04.2005, 17:02 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
тю б..н, проверил — всё норма... вчера целый час дома втыкал — не хотело ну сёдня приду — проверю
|
|
Konstantine |
Отправлено: 20.04.2005, 08:32 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
знач так — проверил тот же текст дома — не катит — выкидует ошибку:
QUOTE | ---------------------------
Project2
---------------------------
[Microsoft][Драйвер ODBC Microsoft Access] В операции должен использоваться обновляемый запрос.
---------------------------
ОК
--------------------------- |
это при INSERT и UPDATE, а при DELETE — тож что-то типа — не могу удалить запись... принёс сёдня ЭТОТ же исходник на работу (с базой) — всё работает нормально... версии Офиса и Билдера обинаковы... мож настройки какие?
|
|
AVC |
Отправлено: 20.04.2005, 09:55 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Может разный коннект?
Почему Драйвер ODBC Microsoft Access?
(может Provider=Microsoft.Jet.OLEDB...)
Я не представляю как для Command Insert можно получить сообщение о необновляемости запроса, только если блокирована целевая таблица.
А что если файл открыт в режиме RO? |
|
Konstantine |
Отправлено: 20.04.2005, 17:46 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
да не знаю... в том-то и прикол, что этот же проэкт, с этим же способом открытия, с этим же драйвером... даже винда с офисом одинаковы...
P.S.: и токо не говорите, что в этом замешано отличие AMD от Intel
драйвер, предложенный AVC не подходит — не найден
использую строку подключения:
QUOTE | Provider=MSDASQL.1;Persist Security Info=False;Data Source=База данных MS Access;Mode=ReadWrite;Initial Catalog=db.mdb |
Отредактировано Konstantine — 20/04/2005, 18:04
|
|
AVC |
Отправлено: 21.04.2005, 08:33 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
драйвер, предложенный AVC не подходит — не найден
|
У меня он появился сам на ранних этапах разворачивания системы. Кажется его ставит если не винда то офис.
У файла точно не стоит атрибут RO?
чудес не бывает — где то прячутся отличия. |
|
Konstantine |
Отправлено: 21.04.2005, 08:41 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
AVC, пасиб... я разобрался — принёс домой EXE-шник, запустил и ... понял что это не в Билдере... Access облазил — тож ничё... а залез в настройки ODBC и там какраз нашёл этот пресловутый ReadOnly... оказуется я его поставил года 2 назад на совершенно другую базу, которой уже и на компе-то нету... а атрибут оно запомнило
а драйвера того так и нету
|
|
AVC |
Отправлено: 21.04.2005, 08:49 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
драйвера того так и нету
|
Ну не знаю. У меня он как данное.
На всякий случай.
Это не ODBC'шный драйвер а для OLE.
Строка соединения
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Password="";User ID=Admin;
|
|
Gedeon |
Отправлено: 22.04.2005, 17:57 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Этот драйвер в МДАКе, вин 2000 и выше его содержит.
|
|