Konstantine |
Отправлено: 28.09.2004, 08:23 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
начал строить базу в Access — чтоб прога могла с разными СУБД работать (подключение через ODBC к ADO)
оказалось, что она не хочет обрабатывать запросы на Insert и Update, причём внутри оболочки запрос катит... (правда пишет, что типа стоки добавлены/обновлены), а с проги не хочет... Можно ли с этим что-нибудь сделать? мне нада чтоб работали простейшие (одноуровневые) запросы на SELECT, INSERT и UPDATE
и ещё, второй вопрос — можно ли в запросах писАть несколько подряд (не вложеных) запросов — типа INSERT и тут-же SELECT? — на любых СУБД (в частности MSSQL 2000, Access)
|
|
olegenty |
Отправлено: 28.09.2004, 08:53 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
ну то, что не отрабатывают запросы — полностью твоя вина. а где грабли — из твоего сообщения не следует.
касаемо же пакетных запросов — MSSQL их поддерживает, Acces — нет, Interbase/Firebird/Yaffil — в чистом виде — нет, при наличии спец. компонента — да, но без SELECT, Oracle — не знаю...
|
|
AVC |
Отправлено: 28.09.2004, 08:59 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
По 1: а транзакция подтверждена?
QUOTE |
можно ли в запросах писАть несколько подряд (не вложеных) запросов — типа INSERT и тут-же SELECT
|
Я таких баз не знаю. Иногда можно писать несколько Insert или Update подряд (Sybase). На Oracle это категорически нельзя.
В общем случае:
1 — Это плохая практика, так как стандарт SQL этого не оговаривает
2 — Это легко выяснить проверкой на конкретном сервере (но это не гарантирует что это будет всегда, даже для этого сервера)
Если вы пытаетесь писать базонезивисимое приложение (мне так показалось из ваших вопросов), то кроме самого простого случае этого делать так же не рекомендуется.
|
|
Konstantine |
Отправлено: 28.09.2004, 09:25 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
ну насчёт второго вопроса — Я понял, ОК.
а насчёт первого — ну а куда транзакции деться, если в этом-же месте SELECT работает, а текст запроса на INSERT — пишу с проги — не работает, пишу снутри оболочки Access — работает хотя и пишет что типа внимание — добавляются записи... с проги тоже что-то подобное пишет (загасить я могу), но результата — нету!!!
|
|
AVC |
Отправлено: 28.09.2004, 09:39 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
А насчет первого. Ну зачем юзать Access при наличии бесплатного FB? Вечно с ним (с Access'oм) геморрой
Короче. Что пищит из проги, текст запроса и структуру таблицы в студию. |
|
AVC |
Отправлено: 28.09.2004, 09:53 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | чтоб прога могла с разными СУБД работать |
Сходу проскочил преамбулу, а сейчас перечитывал — увидел.
Бросьте. Получите средненькое приложение, которое ни чего хорошо делать не умеет. Выбор СУБД так же важен как выбор ОС и определяется решаемыми задачами. А после выбора СУБД грех не использовать её возможности на "всю катушку". Например: то, для чего в одной БД нужно писать код на С в другой делается парой встроенных команд.
|
|
Konstantine |
Отправлено: 28.09.2004, 09:53 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
[QUOTE]Ну зачем юзать Access при наличии бесплатного FB[/QUOTE]
что за FB, и где его взять?
[QUOTE Что пищит из проги, текст запроса и структуру таблицы в студию.[/QUOTE]
дословно — токо завтра смогу написАть...
|
|
AVC |
Отправлено: 28.09.2004, 10:03 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | что за FB, и где его взять? |
Это FireBird. Почти Interbase. Взять можно, например, здесь Информация о IB 6 и Firebird, особенности, FAQ, переход с 5.x на 6, где скачать, комментарии и проч.
По выбору БД посмотрите еще эту тему Как организовать поиск в БД используя Seek там я касался этого вопроса |
|
olegenty |
Отправлено: 28.09.2004, 10:06 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Дубль 2: то, что не вставляется — твоя вина. Только что проверил — у меня всё вставляется.
|
|
olegenty |
Отправлено: 28.09.2004, 10:10 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
да, и не забуть качнуть IBExpert с ibexpert.com, если остановишься на Firebird.
ну а уж про FB можешь хоть узадаваться вопросов, работающих с ним в этом форуме полно
|
|
Gedeon |
Отправлено: 28.09.2004, 18:53 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Че-то мне подсказывает, что запросы Вы пытаетесь выполнить из ADOQuery->Open(); так нельзя нужно ADOQuery->ExecSQL(); или вообще заюзать ADOCommand.
|
|
Konstantine |
Отправлено: 29.09.2004, 09:50 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
не,
1) делал я ExecSQL
2) при Open на эти запросы подругому ругается и всё равно выполняет
а ругается — [Microsoft][Драйвер ODBC Microsoft Access] В операции должен использоваться обновляемый запрос.
ОК, ладна, разобрался...
при настройке при подключении к ODBC я не устанавливал разрешения (ну не долазил туда), а когда поставил — ReadWrite — всё ОК стало!!!
Всем спасибо!!!
|
|
xim |
Отправлено: 29.09.2004, 09:52 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 143
|
Желательно бы увидеть NativeError и морду ошибки (ADOConnection->Errors[все]), ну и ConnectionString можно тоже |
|
Konstantine |
Отправлено: 29.09.2004, 11:32 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
текст еррора Exception-ом высвечивает:
[Microsoft][Драйвер ODBC Microsoft Access] В операции должен использоваться обновляемый запрос.
а строка... ну она уже правильно создана
|
|