Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Простейший пример IB & Delphi. подключение, запрос, результат.


Страницы:   1 2

NetBot ©   (2006-04-11 11:46:00) 

Всем добрый день. Возникла острая необходимость написать простую программку для обращения к interbase серверу. Под рукой есть delphi7.
В чём проблема.. хм. никак немогу врубиться что для этого надо. Второй день лопачу инет в поисках простого  примера "Подключение/выполнение запроса/обработка результата".
Всю докуметацию уже дважды прочитал, но какой то ключевой момент немогу догнать. Может мозги после пхп нежелают понимать элементраных вещей.. х.з.

Вообщем. большая просьба ткнуть носом в простой пример, который бы наглядно показал эти нехитрые операции. (ну пожалуста..ненадо меня посылать на faq.. я там был. ).

Если кто решит помочь:
таблица test.
fielda - integer;
fieldb - varchar(40);
fieldc - date;

результат вывести в memo.text ..
заранее спасибо..


Desdechado   (2006-04-11 18:22:00) [1]

запрос происходит ЧЕРЕЗ подключение, т.е. ibquery.database надо присвоить ibdatabase


NetBot   (2006-04-11 15:57:00) [2]

не буду спорить.. это моё субъективное мнение.
если кто то думает иначе - то он думает иначе. :)

ладно.. далее по вопросу.. при попытке выполнить запрос выдаёт class EIBClientError with message "database no assigned".

вот код.

begin
   IBDatabase1.DatabaseName:='localhost:E:\ib_base\TEST1.GDB';
   IBDatabase1.Params.Add ('user_name=SYSDBA');
   IBDatabase1.Params.Add ('password=masterkey');
   IBDatabase1.Params.Add ('lc_ctype=win1251');
   IBDatabase1.LoginPrompt:=False;

   try
    IBDatabase1.Connected:=True;  
    IBQuery1.Close;
    IBQuery1.SQL.Clear;
    IBQuery1.SQL.Add('select * from NEW_TABLE');
    IBQuery1.Open;
    memo1.Text:=IBQuery1.FieldByName('TEST_FIELD').AsString+' '+IBQuery1.FieldByName('TEST_FIELD2').AsString;

    IBDatabase1.Connected:=False;
   except
    IBDatabase1.Connected:=False;
    MessageBox (Application.Handle, 'Error', 0);
   end;
end;


ну чесслово, почему?? Что этой падле ещё надо???
Вообще из диалога "TIBDAtabase" проверял. значения для подключения верны..


Курдль   (2006-04-11 15:36:00) [3]


> begin
>  with Database1 do
>    Params.Values['Server Name'] := ExtractFilePath(ParamStr(0))
> +
>      'Events.gdb';
> end;
> ну да.. очень информативный пример.. апупедъ.


Я считаю, что весьма информативный пример! Вы в школе какой язык учили? Албанский?


начало
 вместе с БазаДанных сделать
    Параметры.Значения['Имя Сервера'] := ИзвлечьПутьФайла(СтроковыйПараметр(0)) + 'Events.gdb';
конец;


NetBot   (2006-04-11 15:07:00) [4]


> Брось ты это дело.

с удовольствием.. вот щас допишу и забуду.

Кстати, странно.. почему толком не работает TestConnected .. в любом случае до Connected:=True выдаёт false.. хотя, если его просто неучитывать, то вроде всё работает.. хм. для чего он тогда нужен? Может я что то непонимаю?
Или он просто возвращает состояние (было ли ранее Connected в true или false)


Anatoly Podgoretsky   (2006-04-11 14:51:00) [5]

Брось ты это дело.


NetBot   (2006-04-11 14:14:00) [6]


> Простенький пример в {DELPHI}\Demos\Db\IBDemo

да вы с ума сошли.. чесслово..
И так, что там написано:
procedure TdmEvents.dmEventsCreate(Sender: TObject);
begin
 with Database1 do
   Params.Values['Server Name'] := ExtractFilePath(ParamStr(0)) +
     'Events.gdb';
end;

ну да.. очень информативный пример.. апупедъ.
а вот что надо было (хотя и незнаю.. ох.. правильноли..):
   IBDatabase1.DatabaseName:='localhost:E:\ib_base\TEST1.GDB';
   IBDatabase1.Params.Add ('user_name=SYSDBA');
   IBDatabase1.Params.Add ('password=masterkey');
   IBDatabase1.Params.Add ('lc_ctype=win1251');
   IBDatabase1.LoginPrompt:=False;

нее.. я. конечно, понимаю, что все даже незадумываются о компонентах, свойствах и методах..  но вот лично мне трудновато..


Anatoly Podgoretsky   (2006-04-11 14:03:00) [7]

NetBot   (11.04.06 13:31) [14]
Просишь.

Простенький пример в {DELPHI}\Demos\Db\IBDemo
Более сложный там же.


NetBot   (2006-04-11 13:31:00) [8]


> Здесь пытаются направить мозги в нужное русло и заставить
> думать, а не копипастом заниматься.

ну дык.. разве я прошу "сделайте всё за меня"?
прошу ведь простенький пример.. а дальше я сам..


Desdechado   (2006-04-11 13:22:00) [9]

> здесь не любят бесплатно давать готовый пример
Не так. Здесь пытаются направить мозги в нужное русло и заставить думать, а не копипастом заниматься.
А код дают для действительно интересных проблем, не отраженных в DEMOS и запрятанных глубоков доках.


NetBot   (2006-04-11 12:47:00) [10]


> Одним шелчком по кнопке "Коннект" я вышел на функцию, так
> жалобно запрашиваемую вами под пунктом "Подключение".

хех. это я и сам увидел.. ну а что дальше? Выполнить текст запроса и разбор результатов?
Ув. Курдль. ну серьёзно.. 5 рабочих строчек кода - страшная военая тайна?


Megabyte   (2006-04-11 12:47:00) [11]

По идее ты бы успел за пару-тройку часов понять, как работать с IB в Дельфи.
Компоненты луче использовать с закладки IBExpress. Но литературу можно почитать по любой из технологий доступа, т.к. принципы работы с БД между ними похожи, компоненты отличаются префиксом: XXXTable, XXXQuery, XXXDatabase.
Тебе для данной задачи надо 3 компонента: IBDatabase, IBQuery, IBTransaction(ну разве что с ним не сразу придет понимание).

з.ы. здесь не любят бесплатно давать готовый пример без твоих вариантов...


Курдль   (2006-04-11 12:41:00) [12]


> может действительно задача требует хрен знает каких затрат
> человеко/часов и простым примеров необъяснит? а?

Я, давая ссылку на   C:\Program Files\Borland\Delphi7\Demos\Db\IBDemoне из памяти ее взял. Просто помню что есть демосы, демосы по базам и должны быть по IB. За 10 секунд я этот сэмпл нашел. Через 10 секунд он у меня открылся в Делфи. Одним шелчком по кнопке "Коннект" я вышел на функцию, так жалобно запрашиваемую вами под пунктом "Подключение".


NetBot   (2006-04-11 12:35:00) [13]


> оторваться от компа на недельку

хех. в том то и дело, что нет этих неделек.. да и вообще нет задачи изучать дельфи глубже, чем написание данной задачи. мндя..
всего то надо сделать пару запросов и выгрузить их в файл.. на пхп я бы даже и не задумывался о такой задачи.. а вот в дельфях второй (или уже третий.. помоему третий..) день торможу. И кучу мануалов перечитал.. и учебники.. но нигде не увидел наглядного примера. который бы просветлил мозги.
может действительно задача требует хрен знает каких затрат человеко/часов и простым примеров необъяснит? а?


Курдль   (2006-04-11 12:27:00) [14]


> NetBot   (11.04.06 12:19) [7]
> незнаю.. может и так.  может мне пора того... в реку с кирпичом
> на шее.. жизь поржита зря.


Знаю я этот "синдром чесания рук"! Рекомендую взять себя в руки (а не покончить в себя или наложить себе в руки) и оторваться от компа на недельку для ознакомления с бумажной литературой.


NetBot   (2006-04-11 12:19:00) [15]


> Если после 3-х лет "работы" на_чем_угодно Вы не научились
> работать с документацией и прилагаемыми примерами - Вам
> уже ничего не поможет :(

незнаю.. может и так.  может мне пора того... в реку с кирпичом на шее.. жизь поржита зря.


Курдль   (2006-04-11 12:12:00) [16]

Если после 3-х лет "работы" на_чем_угодно Вы не научились работать с документацией и прилагаемыми примерами- Вам уже ничего не поможет :(


NetBot   (2006-04-11 12:10:00) [17]


> Desdechado ©   (11.04.06 12:01) [3]
> ibase.ru

был.. опять таже проблема. нифига не нашёл.

> 8-()  !!!!!!!!!!!!!!!???????????

ага.
----------
люди, ну неужели трудно кинуть пару компонент в форму и скопировать  сюда пример?

Я, вроде, не совсем глупый.. но вот нехватает самой малости для переворота в мозгах.. после 3-х лет пхп как то трудно для понимания всех этих странных компонент и их странноватых методов..


Курдль   (2006-04-11 12:01:00) [18]


> NetBot   (11.04.06 11:59) [2]
> несмешно.. эти примеры - это издевательство.. чесслово..


8-()  !!!!!!!!!!!!!!!???????????


Desdechado   (2006-04-11 12:01:00) [19]

ibase.ru


NetBot   (2006-04-11 11:59:00) [20]

несмешно.. эти примеры - это издевательство.. чесслово..


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо