| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > программа с бд |
| Автор: stmamont 5.1.2006, 23:36 |
| Нужно сделать программу работающую с базой данных, хранящейся в файле (локальная бд) (надеюсь правильно выразился). Как это лучше реализовать? Чем пользоваться? Где почитать документацию? Вообще говорят BDE всегда для этого была, но в 6 версии появилось куча других. Да, кстати, читал про BDE Вопрос: Если в Database Desktop Создать таблицу типа paradox 7. потом создать там псевдоним. В проекте воспользоваться соответствующими компонентами, настроить их. Настроить компоненту Table для работы с этим псевдонимом. Итак вопрос: Если программу откомпилировать и перенести на сторонний компьютер то как заставить ее работать так же с этой же бд на том компьютере? И что надо переносить на др компьютер помимо *.exe? |
| Автор: _hunter 6.1.2006, 11:15 |
| лучше ADO используй. там в Connection String' е путь к файлу прописал и все... |
| Автор: stmamont 6.1.2006, 19:59 |
| хм , я понимаю что в книге. ПРидется, как всегда в справке встроенной в билдер ковыряться. если использовать ado то тянуть с собой надо файлы с бд? или какую то программу для работы с бд? |
| Автор: Partizan 6.1.2006, 20:07 |
| |
| Автор: FRAGNATIC 6.1.2006, 20:39 |
| stmamont идём в раздел литерату и берём книгу там) имхо будет по полезнее чем мучать хэлп)) |
| Автор: stmamont 6.1.2006, 22:59 |
| Поковырялся в хелпе. Итак, на форме ADOConnection DATASource ADOQuery запросы селект пишутся в dbGrid так понял что ADOQuery->ExecSQL для INSERT UPDATE или DELETE добавил таким образом запись (яко бы). как теперь осуществить COMMIT? после вызова ADOQuery->ExecSQL() попробовал прочитать все записи из бд. ---> exception в чем дело. бд создал в MS access. Еще вопрос, при старте проекта и при запуске программы спрашивается логин и пароль, хотя их нет. Как сделать чтоб это сообщение не выскакивало? |
| Автор: FRAGNATIC 6.1.2006, 23:10 | ||||||||
ExecSQL выполняет запрос но не возвращает никаких данных! так что тебе надо ADOQuery->Close ADOQuery->SQL->Clear ADOQuery->SQL->Add(твой запрос) ADOQuery->Open
чтобы выполнить комит сначало надо запустить механизм транзикации типа код из дэлфи
свойсто компонента ADOConnection LoginPromt поставь в False |
| Автор: mrgray 9.1.2006, 21:31 |
| Ладно, теперь вопрос по работе с ADO: Все вроде настроено по-человечески(connection,Query). Еще не запуская программы открываю SQL запросом Access БД и отображаю в Grid'е все поля(*) - все нормально. Драйвер использую Driver do Microsoft Access (*.mdb). Запускаю программу - все работает. Только меняю строку запроса c "select * from tablica" на "SELECT * FROM tablica WHERE tablica.imea =\""+Edit1->Text+"\";" как тут же вылетает Exception "[Microsoft][Драйвер ODBC Microsoft Access] Слишком мало параметров. Требуется 1." В чем дело??? |
| Автор: FRAGNATIC 9.1.2006, 23:24 | ||||
ну во-первых чистим придыдуший запрос и потом добовляем новый запрос SQL сойдёт и такой
почитай про SQL ) т.к. для текста лучше не = использовать а LIKE =) |
| Автор: _hunter 10.1.2006, 11:41 |
| и во вторых что за "Driver do Microsoft Access (*.mdb)."? или Microsoft Jet x.x OLE DB Provider ил Microsoft OLE DB Provider for ODBC Drivers используй |
| Автор: bigscorp 16.1.2006, 13:01 |
| а ваще еси выборок никаких не надо делать хитровымученных, можно просто использовать TADOTable, а если фильтронуть на до то Filter="xxx", Feltered=true. и не надо мутить с SQL операторами |