link7420 link7421 link7422 link7423 link7424 link7425 link7426 link7427 link7428 link7429 link7430 link7431 link7432 link7433 link7434 link7435 link7436 link7437 link7438 link7439 link7440 link7441 link7442 link7443 link7444 link7445 link7446 link7447 link7448 link7449 link7450 link7451 link7452 link7453 link7454 link7455 link7456 link7457 link7458 link7459 link7460 link7461 link7462 link7463 link7464 link7465 link7466 link7467 link7468 link7469 link7470 link7471 link7472 link7473 link7474 link7475 link7476 link7477 link7478 link7479 link7480 link7481 link7482 link7483 link7484 link7485 link7486 link7487 link7488 link7489 link7490 link7491 link7492 link7493 link7494 link7495 link7496 link7497 link7498 link7499 link7500 link7501 link7502 link7503 link7504 link7505 link7506 link7507 link7508 link7509 link7510 link7511 link7512 link7513 link7514 link7515 link7516 link7517 link7518 link7519 link7520 link7521 link7522 link7523 link7524 link7525 link7526 link7527 link7528 link7529 link7530 link7531 link7532 link7533 link7534 link7535 link7536 link7537 link7538 link7539 link7540 link7541 link7542 link7543 link7544 link7545 link7546 link7547 link7548 link7549 link7550 link7551 link7552 link7553 link7554 link7555 link7556 link7557 link7558 link7559
C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
База в Access, запросы
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м) геморрой smile.gif
Короче. Что пищит из проги, текст запроса и структуру таблицы в студию.
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: то, что не вставляется — твоя вина. Только что проверил — у меня всё вставляется. wink.gif
olegenty
Отправлено: 28.09.2004, 10:10


Ветеран

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



да, и не забуть качнуть IBExpert с ibexpert.com, если остановишься на Firebird.

ну а уж про FB можешь хоть узадаваться вопросов, работающих с ним в этом форуме полно smile.gif
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] В операции должен использоваться обновляемый запрос.

а строка... ну она уже правильно создана

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