Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и базы данных

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 126, средняя оценка - 4.93
Sp
5 / 5 / 0
Регистрация: 02.11.2009
Сообщений: 236
Записей в блоге: 1
#1

Подключение к InterBase из Delphi - Delphi БД

25.01.2010, 02:15. Просмотров 16690. Ответов 11
Метки нет (Все метки)

Здравствуйте!!!!!!!!!
Люди добрые
Кто даст подробную инструкцию к подключению к InterBase из Delphi
Требуется.
1) Подключится к этому InterBase
2) Создать БД кодом из формы.
3) Подключится к БД в InterBase

Напрямую в IBConsole получается создать БД
но подключится из Delphi не как!!!!!!!!!!!!!!!!

У меня уже ум за разум заходит от этой литературы!!!!!!!!!!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2010, 02:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подключение к InterBase из Delphi (Delphi БД):

Подключение InterBase - Delphi БД
Доброго времени суток! Прошу вашей помощи по созданию БД. Пытаюсь создать подключение к InterBase с вводом логина и пароля из формы....

Delphi + InterBase - Delphi БД
Здравствуйте. Делаю небольшой клиент для БД на Delphi 7 lite. Бд сделана на InterBase 6. Вообщем, создал алиас, указал путь к фалйлу БД....

Delphi+InterBase - Delphi БД
Здравствуйте, у меня пару вопросов касательно БД INTB+Delphi. 1) у меня есть Edit в него я вписываю название данных в определённом...

delphi и interbase - Delphi БД
как программно удалить все данные из таблицы в интербейсе?

Delphi и InterBase - Delphi БД
Delphi и IB. В программе должно присутствовать разграничение пользователей по правам. В IB создал к примеру роль Buh назначил ей права...

InterBase+Delphi - Delphi БД
Господа профи, всех приветствую, подскажите плизз ссылки или литературу, ну или просто совет как начать. нужно вот что: субд InterBase +...

11
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
25.01.2010, 11:14 #2
гляньте тут - Создание базы данных (ошибка) (про создание БД в интербейсе)
1
AZDesign
1 / 1 / 0
Регистрация: 15.01.2010
Сообщений: 11
26.01.2010, 09:16 #3
1) Создание БД из клиентского приложения - дурной тон
2) Как создать БД, приложение и подключение подробно описано здесь:
AZMicro - самая простая бухгалтерская программа
1
Eugeny
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 5
28.01.2010, 08:09 #4
SP В делфе исть компоненты для работы с БД Это InterBase.
Добавляеш на форму IBDataBase, IBTable, IBTransaction из компонентов DataAccess DataSource.
Также необходимо Вставить DBGrid из Data Controls сюда будет загружаться твоя БД. Теперь тебе просто необходимо связать все эти компоненты:
В свойствах компонентах указываеш
Для IBDataBase Выбираеш свою БД в DataBase Name и в Default Transaction Указываешь IBTransaction1;

Для IBTable в св-ве DataBase выбери IBDataBase1 также укажи Transaction и выбери в TableName имя таблицы из БД и чтобы твоя таблица отображалась в св-ве Active: True;

Для IBTransaction Укажи DefaultDataBase: IBDataBase1

для DataSourese у Data Set выбери IBTable1

и последнее В DbGrid укажи в DataSource: DataSource1
Теперь можеш запускать!!
1
kukuruku310
197 / 184 / 7
Регистрация: 14.02.2010
Сообщений: 539
14.02.2010, 20:15 #5
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
IBDB := TIBDataBase.Create(Application);
  IBTr := TIBTransaction.Create(Application);
  with IBDB do begin
    DatabaseName := 'remoteserver:d:\base_storage\base_catalog\base_name.gdb';
    Params.Add('user_name=sysdba');
    Params.Add('password=my_password');
    Params.Add('lc_ctype=WIN1251');
    LoginPrompt := False;
    DefaultTransaction := IBTr;
  end;
 
  with IBTr do begin
    DefaultDatabase := IBDB;
    with Params do begin
      Add('isc_tpb_read');
      Add('isc_tpb_nowait');
      Add('isc_tpb_concurrency');
      Add('isc_tpb_read_committed');
      Add('isc_tpb_rec_version');
    end;
  end;
 
  try
    IBDB.Connected := True;
  except
    on E:EIBError do begin
      MessageBox(GetActiveWindow, PChar(E.Message), nil, 0);
    end;
  end;
чтобы создавать базу надо использовать прямые вызовы IB API, т.к. код в IBDataBase VCL для этой функции написан неправильно
1
Ex_Soft
107 / 107 / 3
Регистрация: 28.01.2009
Сообщений: 481
14.02.2010, 23:25 #6
Цитата Сообщение от kukuruku310 Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
    with Params do begin
      >>>Add('isc_tpb_read');<<<
      Add('isc_tpb_nowait');
      >>>Add('isc_tpb_concurrency');<<<
      Add('isc_tpb_read_committed');
      Add('isc_tpb_rec_version');
    end;
Хотелось бы услышать Ваши весомые аргументы для сего...
Цитата Сообщение от kukuruku310 Посмотреть сообщение
чтобы создавать базу надо использовать прямые вызовы IB API, т.к. код в IBDataBase VCL для этой функции написан неправильно
Бред...
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
гляньте тут - Создание базы данных (ошибка) (про создание БД в интербейсе)
1
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
15.02.2010, 10:26 #7
Цитата Сообщение от Ex_Soft Посмотреть сообщение
Бред...
это вы хотите сказать, что бред писали в этой теме?
1
Ex_Soft
107 / 107 / 3
Регистрация: 28.01.2009
Сообщений: 481
15.02.2010, 11:05 #8
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
это вы хотите сказать, что бред писали в этой теме?
Я хотел сказать:
Цитата Сообщение от Ex_Soft Посмотреть сообщение
Цитата Сообщение от kukuruku310 Посмотреть сообщение
чтобы создавать базу надо использовать прямые вызовы IB API, т.к. код в IBDataBase VCL для этой функции написан неправильно
Бред...
1
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
15.02.2010, 11:10 #9
Ex_Soft, пардон, неправильно прочел ваш пост значит
1
kukuruku310
197 / 184 / 7
Регистрация: 14.02.2010
Сообщений: 539
15.02.2010, 19:07 #10
насчет параметров транзакции ничего не скажу, просто выдрал кусок из существующего кода, не заостряясь на деталях - просто как пример создания в программе, а не бросанием на форму.

насчет бреда - так бред именно в реализации CreateDatabase в стандартной VCL - при вызове Create Database не передается логин-пароль, вернее передается через Param, но не в том виде - с префиксом, который в данном случае совершенно вреден.
А вот если вызвать
IBDB.Call(isc_dsql_execute_immediate(StatusVector, @IBDB.Handle, @tr_handle, 0,
PChar('CREATE DATABASE ''localhost:c:\test.gdb'' user ''sysdba'' password ''пароль'''), 1, nil), True);
то база создана будет.
Ну а по поводу приведенной Вами ссылки по этому поводу, то что-то там конкретно по этому вопросу ничего не обнаружил.
А базу иногда(!очень!) нужно создать именно динамически - хотя бы как временную - задачи бывают разные....
1
Ex_Soft
107 / 107 / 3
Регистрация: 28.01.2009
Сообщений: 481
16.02.2010, 01:42 #11
Цитата Сообщение от kukuruku310 Посмотреть сообщение
насчет параметров транзакции ничего не скажу, просто выдрал кусок из существующего кода, не заостряясь на деталях - просто как пример создания в программе, а не бросанием на форму.
/me вспоминает: "...целый ряд вопросов отпал и осталось только несколько важнейших..."
Цитата Сообщение от kukuruku310 Посмотреть сообщение
насчет бреда - так бред именно в реализации CreateDatabase в стандартной VCL - при вызове Create Database не передается логин-пароль, вернее передается через Param, но не в том виде - с префиксом, который в данном случае совершенно вреден.
1. Т.е. именно это и сподвигло Вас к
Цитата Сообщение от kukuruku310 Посмотреть сообщение
код в IBDataBase VCL для этой функции написан неправильно
?
/me думает: ню-ню...

2. И в чем же, по Вашему мнению, "вредность" префикса?
Цитата Сообщение от kukuruku310 Посмотреть сообщение
А вот если вызвать
Т.е.
C++
1
2
3
4
5
cdb->Params->Add("user \"sysdba\"");
cdb->Params->Add("password \"masterkey\"");
cdb->Params->Add("default character set WIN1251");
cdb->Params->Add("page_size 4096");
cdb->CreateDatabase();
vs
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int __fastcall CreateDatabase(void)
{
   ISC_STATUS
     status_vector[20];
 
   char
     *statement="CREATE DATABASE 'd:\\INVENTORY.GDB' USER 'SYSDBA' PASSWORD 'masterkey'";
 
   TISC_DB_HANDLE
     db_handle=0;
 
   TISC_TR_HANDLE
     dummy_handle=0;
 
   _di_IGDSLibrary
     gdsInterface=GetGDSLibrary();
 
   gdsInterface->isc_dsql_execute_immediate(status_vector,&db_handle,&dummy_handle,0,statement,1,0);
 
   if(status_vector[0]==1 && status_vector[1])
     {
        return status_vector[1];
     }
 
   return 0;
}
Вы отдаете предпочтение винегрету? И чем это лучше?
0
kukuruku310
197 / 184 / 7
Регистрация: 14.02.2010
Сообщений: 539
16.02.2010, 10:17 #12
Блин, извините, и впрямь напутал насчет префиксов. Префиксы "isc_dpb" в даном конкретном случае действительно ни при чем. У меня просто как-то был глюк с добавлением параметров, вот не проверив и сделал умное лицо, ну да это не в тему...
А пример свой я просто нарисовал в качестве ответа на вопрос - "создание базы". Просто для примера как создать IB базу c использованием TIBDataBase, т.к. VCL-реализация CreateDatabase не передает обязательные в данном случае имя пользователя и пароль.
И ничего более показать своим примером не хотел.
0
16.02.2010, 10:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2010, 10:17
Привет! Вот еще темы с ответами:

Delphi и опять interbase - Delphi БД
Доброго времени суток! Возникла странная проблема. Подключил базу интербейза 7.5 к делфи 7, всё работает. В Grid отображает инфу. Суть...

Соединение Delphi с InterBase - Delphi БД
Как соединить сервер Interbase c клиентским приложением в Delphi?:gsad:

InterBase & Delphi 7.0 - Delphi БД
Всем доброго времени суток. Есть база Test.gdb в ней 6 полей (id_question,Vopros,Prav_otvet,N_ot vet1,N_otvet2,N_otvet3) где Vopros -...

Delphi + InterBase + SQL - Delphi БД
Товарищи помогите реализовать удаление выбранной записи из DBGrid при том что у меня выводятся не все колонки, а та которая не выводится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.