Не може да се свърже базата данни на Paradox чрез ODBC и ADO
Изобщо не мога да свържа базата данни на Paradox чрез ODBC и ADO. Изглежда, че работи, но веднага щом преименувам Borland Shared\BDE, получавам грешката "[Microsoft][Paradox ODBC драйвер]Външната таблица няма предвидения формат", въпреки че не разбирам какво общо има BDE с това.
Правя това (Win XP, D7):
1) Windows: Административни инструменти\Източници на ODBC данни - Получавам диалоговия прозорец Администратор на източници на ODBC данни.
2) В администратора, в раздела „Потребителски DSN“, кликвам върху „Добавяне“, стигам до прозореца „Създаване на нов източник на данни“. Тук избирам драйвера, конкретно - Microsoft Paradox драйвер. Щраквам Готово.
3) Влезте в прозореца „Инсталиране на ODBC драйвера за Paradox“. Давам име на източника, drive4. Премахвам отметката от квадратчето „Използване на текущата директория“ и избирам директорията, където се намират моите .db таблици. Можете да щракнете върху „Опции“, но там няма нищо интересно.
4) Изходното устройство4 се появява в списъка „Потребителски DSN“. Натискам OK.
1) Създавам нов проект. Поставям ADOConnection1 във формуляра, задавам свойства: - Низ за връзка: изберете свързаните данни = Microsoft OLE DB доставчик за ODBC драйвери, след това: - в прозореца "Използване на името на източника на данни" изберете моя диск4. - Останалото не го попълвам. Проверявам връзката - успешно. - Щраквам върху OK и в друг прозорец OK.
2) Конфигурирам други свойства на ADOConnection1: - LoginPrompt := false - Mode := cmShareDenyNone - Provider = MSDASQL.1 се попълва автоматично (Connected изглежда се инсталира сам)
3) Поставям ADOQuery1 във формуляра, попълвам свойствата: - Copnnection = ADOConnection1, - CursorType = ctStatic, - SQL = Select * from Results.db - Active = true,
4) Поставих DataSource1, настроих: - DataSet = ADOQuery1
5)Сложих DBGrid1, настроих: - DataSource = DataSource1
- Появява се маса, като - всичко е наред. Започвам - става.
Но ако преименувате папката BDE --> BDE__ след това (за да преименувате, трябва да затворите проекта и Delphi) след това имаме грешка: [Microsoft][ODBC Paradox Driver]Външната таблица няма желания формат.
Всъщност трябва да работя с DB на лок. мрежа, ADO - Access би бил подходящ, но в този случай не мога да използвам SQL за свързване на таблица по избор.
> но веднага щом преименувам Borland Shared\BDE , получавам грешка не преименувайте! защото jet, който работи с парадокса, работи в 2 версии, съкратена (само за четене и само до версия 4) и разширена с всички функции, но използвайки BDE. (. ) ODBC драйверът използва jet от известно време (никой не иска да работи сам ;o)). Ето грешка за вас, когато BDE dlls не са намерени. (и на машина с деинсталирана ще спре да записва напълно и ще отвори 7-ма версия ..)
> > ADO - Access, но в този случай не мога да използвам SQL, за да свържа таблица по мой избор Не е нужно да се свързвате, можете да получите достъп до всяка външна таблица без него (доколкото разбрах "проблема" ви). в помощта за jet (в Access) потърсете раздела „IN clause“ и/или „ISAM Formats“.
Те са гадове и паразити, паразитират върху БДЕ и объркват незрелите умове. Те се радват как са се отървали от BDE.
Благодаря ти ! Ситуацията е смешна. Остава, прилагайки ODBC и ADO няма да се отървем от BDE? Необходимите *.dll разбира се могат да бъдат копирани в наблюдаваните папки и дори да се изберат само необходимите, но това е грозно, въпреки че ще опитам. Може би има нормален начин?
друг нормален изход е да използвате ADO за какворазвити. (всеки sql сървър\двигател, който има OLEDB доставчик), и забравете за парадокса. (добре, максимумът за конвертиране на стария, от него в нормален формат, но не стартирайте новия върху него)
ако обичате парадокс, използвайте BDE.
Здравейте! Разбирам, че нормалният път е SQL сървър, така че ще трябва да го проуча. Paradox + BDE също не е лош за моята проста задача, особено след като Paradox може да бъде прекодиран в много формати с помощта на Access. Ще прочета и за достъпа до отделни .mdb таблици, може би ще се получи нещо. Благодаря ви!
> особено след като Paradox може да се прекодира в много формати с помощта на Access. с помощта на Access можете да конвертирате почти всеки формат във всеки друг. има методи (ISAMs), които го правят. Тъй като не си струва да избирате парадокс само за това, това не е „достойна“ причина.
като цяло, дори ако имате нужда от местна фармацевтика/двигател, по-добре е да изберете друг, това е болезнено проблематичен парадокс (съдейки по постоянните въпроси тук), поне dBase е още по-добър (използвайте BDE) или същият .mdb (ADO + Jet), в него няма нищо сложно (има повече възможности, което означава, че научавате повече, по-обемно, но не по-трудно. но можете да започнете с минимум изобщо)
добре, и още един съвет, ако къде в примерите се намери TADOTable, TADOQuery или TADOStoredProc, променете ги на TADODataset, ако TADOQuery не отваря, а ExecSQL, променете го на неговата TADOCommand. само за да не се налага да преправяте/учите отново по-късно.
Благодаря за съвета.
1. Ще отида в Кралството, грамотността трябва да се подобри.
2. Paradox е избран незнайно защо, на принципа - защо не, ако не знам предимствата и недостатъците. Но аз не държа на това, защото да се трансформирам като
не е трудно. Но изглежда няма проблем със самия парадокс, всичковърши работа. Някои предлагат Visual FoxPro, но аз отложих това запознанство. От старите дни е останало, че за своите приложения, клиентът трябва да инсталира плейър. Въпреки това е почти
така или иначе работи.
3. За тази компания (TADOTable, TADOQuery, TADOStoredProc, TADODataset) I
Прочети. Имам Yi Yu Bazhenova-D7, S.Bobrovsky-D5, Teixeira-D5. Но засега наистина използвам TADOTable, TADOQuery. Утре ще пробвам да го сменя.
4. Все пак се страхувах напразно. Достъп до всяка таблица, включително по време на изпълнение и от
procedure TForm1.Button2Click(Sender: TObject); begin ClientDataSet_Test.Active := true; опитайте ClientDataSet_Test.CommandText := "Изберете * от " + Edit1.Text; ClientDataSet_Test.Execute; ClientDataSet_Test.Refresh; освен showmessage("Промяна на тестове - грешка"); край; край; (Доставчик.Опции. конфигуриран)
Но изглежда, че го направих преди, защо не се получи - не знам, трябва да съм бързал.
> Някои съветват Visual FoxPro, но аз отложих това запознанство. ако като инструмент, на който да напиша цялата програма, тогава да, има смисъл, в смисъл, че никой не може да направи по-добре от самия Fox да работи с формата на таблицата foxpro. ако не си струва като табличен формат за работа с него от Delphi, има проблеми. не е план като парадокс, а по-скоро специални ограничения, въведени във VFP драйвера (нищо друго освен намерение да обясня, например, невъзможността за създаване на индекси за самостоятелни (не в базата данни и дори там през едно място) таблици, не мога) но между другото, когато работите с формата fox, fox има всички предимства и накрая, на Delphi можете да изберете всяка база данни / формат и да работите с него приблизително според същите принципи. ако наистина препоръчвате локална база данни за обучение/използване в Delphi, бих предложилaccec, dofig възможности, принципите на работа са два, едната опция като при клиент сървър, другата като при файлов сървър. Ако ще работите като клиентски сървър, тогава без никакви проблеми ще преминете към нормален sql сървър. (можете също да използвате персонала на Firebird, локалната компилация е почти същата като работещия сървър, но тук ADO не е най-подходящата опция. Не, можете да работите през нея, няма проблем, просто има повече "родни" компоненти)
> Достъп до всяка таблица, включително по време на изпълнение и от > клиент - можете да: ClientDataSet? имаш ли триколка или само в едно приложение се използва за кеширани промени, напр. ако второто е напразно, TADODataSet върши подобна работа (режим ltBatchOptimistic), може би не в този обем (или е по-добре да се каже малко по-различно), но в повечето случаи е достатъчно, ClientDataSet е просто допълнителна връзка тук (и допълнителна dll, която трябва да носите със себе си, отделно или включена в проекта.).