Inter Base
9 отговора
452 прегледа
Inter Base
Здравейте.
Имам няколко обширни въпроса относно InterBase но няколко прости примера който да ме насочат ще са ми достатъчни.
Въпросите са тъпи но аз съм съвсем начинаещ :)
1. Как да се вържа към сървъра и да визуализирам дадена таблица в приложение на delphi.
2. Как да изпратя до сървъра заявка
3. Как да създам и запазя нова таблица или записи в вече съществувача таблица
Имам няколко обширни въпроса относно InterBase но няколко прости примера който да ме насочат ще са ми достатъчни.
Въпросите са тъпи но аз съм съвсем начинаещ :)
1. Как да се вържа към сървъра и да визуализирам дадена таблица в приложение на delphi.
2. Как да изпратя до сървъра заявка
3. Как да създам и запазя нова таблица или записи в вече съществувача таблица
Re: Inter Base
1. Как да се вържа към сървъра и да визуализирам дадена таблица в приложение на delphi.
В Делфи има различни компоненти за връзка към Interbase/Firebird. Стандартно от версия 5 нагоре имаш Interbase Express (IBX). Освен ако не искаш да ползваш други такива (например FIB Plus) ти препоръчвам да ползваш тях. За целта трябва да сложиш два компонента - IBDatabase и IBTransaction. DblClick върху всеки от тях ти дава възможност за настройки. За транзакцията можеш да установиш типа й. Това е малко по-сложно за обяснение, затова засега го сложи на Read Commited на доверие :-)
В IBDatabase настрой пътя към базата и логина. Ако базата е на твоя компютър посочи пътя към нея. Ако е на друг - задай пътя на отдалечения компютър, т.е. на какъв път се намира базата, но на другия компютър, не как ти да стигнеш до нея през мрежата. Също така задай IP адреса на компютъра и за протокол - TCP/IP. По подразбиране логина е SYSDBA/masterkey, но ако някой е сменил паролата или искаш да ползваш друг акаунт ще трябва да напишеш коректни такива. Ако базата данни има charset - тук е мястото където да укажеш какъв е той. Ако няма или не знаеш какво е това - остави го на none. Долу имаш бутон Test. Провери дали всичко е ОК :-)
Визуализацията на данни става най-просто с Data Aware контроли. Сложи един DB Grid, един Data Source и един IBTable. Установи стойностите на DBGrid.DataSource, DataSource.DataSet и IBTable.Databse. IBTable има пропърти TableName - избери таблицата, която искаш да визуализираш. Сега ако установиш IBTable.Active := True трябва да видиш в грида данните от таблицата.
2. Как да изпратя до сървъра заявка
Има два компонента за целта - IBSQL и IBQuery. Те имат пропърти SQL. Там пишеш заявката си. Ако използваш IBSQL трябва да извикаш метода му ExecQuery за да се изпълни заявката. Ако използващ IBQuery методите са два - Open изпълнява заявки които ти връщат резултат (т.е. select заявки). За останалите (напр. insert into, update, delete и т.н.) се използва метода ExecSQL.
3. Как да създам и запазя нова таблица или записи в вече съществувача таблица
Създаването на таблицата е по-добре да си го направиш с някакъв подходящ тул (IB Console, IB Expert и т.н.), а не да го правиш по време на работа на програмата, но ако така трябва да бъде така, то можеш да използваш нещата от точка 2 и да изпълниш DLL заявката (create table ...).
Данните се редактират в някои от компонентите за заявки (IBQuery, IBSQL, IBDataSet) или в IBTable. Последното не ти препоръчвам да го ползваш. То е оставено само за съвместимост. Вместо него ползвай IBDataSet, като вместо името на таблицата попълни пропъртитата SelectSQL, RefreshSQL, DeleteSQL, ModifySQL и InsertSQL. След като изпълниш заявката или отвориш таблицата:
- можеш да променяш текущия запис с методите First, Next, Last и Prior и да правиш проверки с методите BOF и EOF;
- можеш да изтриеш текущия запис с метода Delete;
- можеш да редактираш текущия запис с метода Edit, да присвоиш стойности на полетата през пропъртитата Fields, FieldByName или по име, ако си си ги добавил през Fields Editor-а, след което да потвърдиш промените чрез метода Post или да ги откажеш чрез метода Cancel;
- да добавиш нов запис с метода Append, след което нещата са аналогични на редактирането на запис.
В общи линии е това. Освен това обаче е силно препоръчително да си управляваш транзакциите. Компонента IBTransaction има методи за целта InTransaction, StartTransaction, Commit, CommitRetaining, Rollback и RollbackRetaining.
Успех!
В Делфи има различни компоненти за връзка към Interbase/Firebird. Стандартно от версия 5 нагоре имаш Interbase Express (IBX). Освен ако не искаш да ползваш други такива (например FIB Plus) ти препоръчвам да ползваш тях. За целта трябва да сложиш два компонента - IBDatabase и IBTransaction. DblClick върху всеки от тях ти дава възможност за настройки. За транзакцията можеш да установиш типа й. Това е малко по-сложно за обяснение, затова засега го сложи на Read Commited на доверие :-)
В IBDatabase настрой пътя към базата и логина. Ако базата е на твоя компютър посочи пътя към нея. Ако е на друг - задай пътя на отдалечения компютър, т.е. на какъв път се намира базата, но на другия компютър, не как ти да стигнеш до нея през мрежата. Също така задай IP адреса на компютъра и за протокол - TCP/IP. По подразбиране логина е SYSDBA/masterkey, но ако някой е сменил паролата или искаш да ползваш друг акаунт ще трябва да напишеш коректни такива. Ако базата данни има charset - тук е мястото където да укажеш какъв е той. Ако няма или не знаеш какво е това - остави го на none. Долу имаш бутон Test. Провери дали всичко е ОК :-)
Визуализацията на данни става най-просто с Data Aware контроли. Сложи един DB Grid, един Data Source и един IBTable. Установи стойностите на DBGrid.DataSource, DataSource.DataSet и IBTable.Databse. IBTable има пропърти TableName - избери таблицата, която искаш да визуализираш. Сега ако установиш IBTable.Active := True трябва да видиш в грида данните от таблицата.
2. Как да изпратя до сървъра заявка
Има два компонента за целта - IBSQL и IBQuery. Те имат пропърти SQL. Там пишеш заявката си. Ако използваш IBSQL трябва да извикаш метода му ExecQuery за да се изпълни заявката. Ако използващ IBQuery методите са два - Open изпълнява заявки които ти връщат резултат (т.е. select заявки). За останалите (напр. insert into, update, delete и т.н.) се използва метода ExecSQL.
3. Как да създам и запазя нова таблица или записи в вече съществувача таблица
Създаването на таблицата е по-добре да си го направиш с някакъв подходящ тул (IB Console, IB Expert и т.н.), а не да го правиш по време на работа на програмата, но ако така трябва да бъде така, то можеш да използваш нещата от точка 2 и да изпълниш DLL заявката (create table ...).
Данните се редактират в някои от компонентите за заявки (IBQuery, IBSQL, IBDataSet) или в IBTable. Последното не ти препоръчвам да го ползваш. То е оставено само за съвместимост. Вместо него ползвай IBDataSet, като вместо името на таблицата попълни пропъртитата SelectSQL, RefreshSQL, DeleteSQL, ModifySQL и InsertSQL. След като изпълниш заявката или отвориш таблицата:
- можеш да променяш текущия запис с методите First, Next, Last и Prior и да правиш проверки с методите BOF и EOF;
- можеш да изтриеш текущия запис с метода Delete;
- можеш да редактираш текущия запис с метода Edit, да присвоиш стойности на полетата през пропъртитата Fields, FieldByName или по име, ако си си ги добавил през Fields Editor-а, след което да потвърдиш промените чрез метода Post или да ги откажеш чрез метода Cancel;
- да добавиш нов запис с метода Append, след което нещата са аналогични на редактирането на запис.
В общи линии е това. Освен това обаче е силно препоръчително да си управляваш транзакциите. Компонента IBTransaction има методи за целта InTransaction, StartTransaction, Commit, CommitRetaining, Rollback и RollbackRetaining.
Успех!
Re: Inter Base
Говорим за InterBase, но имай пред вид че в момента неин аналог е Firebird- безплатна версия, но не отстъпваща по нищо на Interbase 7.0 Потърси я в интернет.
И, преди да започнеш с Делфи, намери си IBExpert. Средство за създаване и разработка на БД- firebird, interbase, yaffil.
И, преди да започнеш с Делфи, намери си IBExpert. Средство за създаване и разработка на БД- firebird, interbase, yaffil.
Re: Inter Base
Не съм я ползвал. Тя е комерсиална, т.е. срещу заплащане. Говори се, че е оптимизирана за Windows (всъщност не е кросплатформена). Обаче, сега двата проекта Firebird и Yaffil се сливат, като допълнителните неща които ги има в Yaffil отиват в новите версии на Firebird.
Re: Inter Base
Andrew, имам едно питане. Като се ползва интербейс датасет компоненти, не се ли викат пак ApplyUpdates при изпълнение на Edit, Delete и т.н. ?
CachedUpdates
ApplyUpdates е метод, който се използва в режим на CachedUpdates. При него промените в dataset-а не се изпращат към базата, докато не се извика ApplyUpdates. По подразбиране CachedUpdates е False и не трябва да се вика ApplyUpdates.
Оле, колега...
Даниелски, Даниелски, 1 година писахме client-server приложение, ти не си разбрал applyUpdates какво прави - друг път повечко да питаш!
Re: Оле, колега...
Е чак пък една година :) Само 10 месеца бяха. Но не беше казано ясно в един от предишните постове, та останах с впечатление че не се ползва ApplyUpdates за запис в базата.
Поздрави Василевски :)
Поздрави Василевски :)