C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Запрос к Access, вставка
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



тю б..н, проверил — всё норма... вчера целый час дома втыкал — не хотело sad.gif ну сёдня приду — проверю
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 biggrin.gif

драйвер, предложенный 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?
чудес не бывает — где то прячутся отличия. smile.gif
Konstantine
Отправлено: 21.04.2005, 08:41


Мастер участка

Группа: Модератор
Сообщений: 545



AVC, пасиб... я разобрался — принёс домой EXE-шник, запустил и ... понял что это не в Билдере... Access облазил — тож ничё... а залез в настройки ODBC и там какраз нашёл этот пресловутый ReadOnly... оказуется я его поставил года 2 назад на совершенно другую базу, которой уже и на компе-то нету... а атрибут оно запомнило sad.gif

а драйвера того так и нету sad.gif
AVC
Отправлено: 21.04.2005, 08:49


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

драйвера того так и нету

Ну не знаю. sad.gif У меня он как данное.
На всякий случай.
Это не ODBC'шный драйвер а для OLE.
Строка соединения
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Password="";User ID=Admin;
Gedeon
Отправлено: 22.04.2005, 17:57


Ветеран

Группа: Модератор
Сообщений: 1742



Этот драйвер в МДАКе, вин 2000 и выше его содержит.

Вернуться в Работа с базами данных в C++Builder