Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

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

 
NetBot   (2006-04-11 11:46) [0]

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

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

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

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


 
Курдль ©   (2006-04-11 11:56) [1]


> большая просьба ткнуть носом в простой пример


Тыкаю носом :  C:\Program Files\Borland\Delphi7\Demos\Db\IBDemo


 
NetBot   (2006-04-11 11:59) [2]

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


 
Desdechado ©   (2006-04-11 12:01) [3]

ibase.ru


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


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


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


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


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

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

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

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

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


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

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


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


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

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


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


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


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


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


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

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


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


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

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


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


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

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


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

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

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


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

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


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


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

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


 
Anatoly Podgoretsky ©   (2006-04-11 14:03) [15]

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

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


 
NetBot   (2006-04-11 14:14) [16]


> Простенький пример в {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:51) [17]

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


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


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

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

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


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


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


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


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


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

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

ладно.. далее по вопросу.. при попытке выполнить запрос выдаёт 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" проверял. значения для подключения верны..


 
Desdechado ©   (2006-04-11 18:22) [21]

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.057 c
15-1146928718
ArtemESC
2006-05-06 19:18
2006.06.04
SetLength, Trim в BP


15-1147350795
carmen
2006-05-11 16:33
2006.06.04
tpu


3-1144929416
ttt_111
2006-04-13 15:56
2006.06.04
Как сделать поиск в DBgrid?


4-1142155221
Handle
2006-03-12 12:20
2006.06.04
Снова процессы


2-1148054439
Мурзилка
2006-05-19 20:00
2006.06.04
кодировки