Вопрос про вставку через IBSQL->Batchinput и runtime

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Barsevich
Сообщения: 9
Зарегистрирован: 11 авг 2007, 15:36

Вопрос про вставку через IBSQL->Batchinput и runtime

Сообщение Barsevich » 15 ноя 2007, 21:10

Назрело со временем у меня 2 вопроса:
1. Как создать в С++ Builder в RunTime компонеты IBDatabase,IBTransaction,IBDataSet ? Конструктор не хочет вызываться, в Delphi все работает.

2. Как в IBSQL пользоваться свойством BatchInput ? Может кто-нибудь пример кинуть ?

Заранее спасибо, удолбался уже... :shock:

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 16 ноя 2007, 11:37

1. Как пробовал? Какая ошибка? Отсюда не видно.
2. Почитай статью.

Barsevich
Сообщения: 9
Зарегистрирован: 11 авг 2007, 15:36

Сообщение Barsevich » 22 ноя 2007, 01:09

1.

Вот код Delphi который работает:

type
<someclass> = class(TThread)
private
...
protected
...
public
bd:TIBDatabase;
tr:TIBTransaction;
query:TIBSQL;
End;

Затем в процедуре:
bd:=TIBDatabase.Create(nil);
tr:=TIBTransaction.Create(nil);

Все работает.

В С++ Builder:
TIBDatabase *db;

db->Create(nil); - не работает
[C++ Error] Unit1.cpp(94): E2316 'Create' is not a member of 'TIBDatabase' - хотя в описании есть
TIBDatabase *db=TIBDatabase.Create(nil); - не работает
[C++ Error] Unit1.cpp(92): E2108 Improper use of typedef 'TIBDatabase'
[C++ Error] Unit1.cpp(94): E2316 'Create' is not a member of 'TIBDatabase'

в Help-e написано:

constructor Create(AOwner: TComponent);

Description
Call Create to instantiate a database component at runtime. An application can create a database component in order to control the component’s existence and set its properties and events.

Но как его вызвать ?

Конструктора TIBDataBase в описании нет. Что создавать надо через оператор new тоже в описании нет.
TIBDatabase *db=new TIBDatabase; - тоже не работает
[C++ Error] Unit1.cpp(92): E2285 Could not find a match for TIBDatabase::TIBDatabase()'
Может он как-то неявно вызывается ?

2. Статью читал. пока ничего полезного для себя не нашел, читаю дальше.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 22 ноя 2007, 01:12

2. Статью читал. пока ничего полезного для себя не нашел, читаю дальше.
лучше посмотри примеры к BCB на IBX. должны быть такие.

Oliver
Сообщения: 6
Зарегистрирован: 19 ноя 2007, 12:24

Сообщение Oliver » 23 ноя 2007, 16:27

А если попробовать так:

TIBDatabase * IBDatabase;

IBDatabase = new TIBDatabase(какой нибудь компонент);

Ответить