Форум: "Базы";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
ВнизГоспода, помогите с freeIBComponent разобраться. Крыша едет :(( Найти похожие ветки
← →
Boroda Oleg (2004-01-16 21:03) [0]Или подскажите, где про них что-нибудь почитать можно, желательно на русском языке.
Ситуация такая: Есть DataModule. На нем лежит IBDatabase, IBTransaction, DataSource, IBQuery, IBUpdateSQL - все компоненты расчитаны на открыитие таблицы Account и ее обновление после закрытия. Это у меня получилось, хотя пока не пробовал вставлять и удалять строки.
Приделываю к этому еще одну IBQuery (к IBDatabase) и пытаюсь через него получить запрос на ту же таблицу с простейшим запросом (select * from ACCOUNT) - получаю абы что. Вешаю туда же простое Query и получаю запрос через BDE - все Ок.
Явно что-то не так работает. Но что?
← →
jack128 (2004-01-16 21:18) [1]
> Явно что-то не так работает. Но что?
Что именно? Сообщение об ошибке?
Транзакция у нового IbQuery назначена?
И вообще о каких компонентах идет речь?
O FreeIBComponents, как написано в теме? Но это же старье и сейчас почти не использется? Или FIBPlus? Или (если судить по названию компонентов в самом вопросе) IBX?
← →
Boroda Oleg (2004-01-16 21:56) [2]Видимо все же IBX, точнее те, что входят в состав Delphi 7.
Транзаккцию я прописывал ту же, что и для предыдущего Query.
Вообще, пробывал все, что только возможно - результата не получил.
← →
jack128 (2004-01-16 22:02) [3]
> Видимо все же IBX, точнее те, что входят в состав Delphi
> 7. Угу - это IBX.
Код в студию, а так же текст сообщения об ошибке
← →
Boroda Oleg (2004-01-17 10:30) [4]Дык ошибки нету :(( Просто SQL неправильно отрабатывает.
Насчет кода - там всего-то один запрос интерес представляет
select * from ACCOUNT
открываю его обычным:
DM.GridQuery.SQL.Clear; (DM - datamodule, GridQuery - TIBQuery)
Еще интерес представлять может DataModule - вырезаю все что не должно понадобиться:
object DM: TDM
OldCreateOrder = False
object DataSource: TDataSource
DataSet = IBQuery
end
object IBDatabase: TIBDatabase
Connected = True
DatabaseName = "C:\Borland\PROJECT\DOG\SQL_TABLE\DOG.GDB"
Params.Strings = ("user_name=sysdba" "password=masterkey")
LoginPrompt = False
DefaultTransaction = IBTransaction
IdleTimer = 0
SQLDialect = 1
TraceFlags = []
end
object IBTransaction: TIBTransaction
Active = True
DefaultDatabase = IBDatabase
DefaultAction = TACommitRetaining
Params.Strings = ("read_committed" "rec_version" "nowait")
AutoStopAction = saNone
end
object IBQuery: TIBQuery
Database = IBDatabase
Transaction = IBTransaction
BeforeOpen = IBQueryBeforeOpen
BufferChunks = 1000
CachedUpdates = False
SQL.Strings = ("SELECT * FROM ACCOUNT" "WHERE ID_ACCOUNT = :ID_ACCOUNT")
ParamData = <
item
DataType = ftUnknown
Name = "ID_ACCOUNT"
ParamType = ptUnknown
end>
end
object IBUpdateSQL: TIBUpdateSQL
ModifySQL.Strings = ("update ACCOUNT" "set ....")
InsertSQL.Strings = ( "insert into PROJECT ....")
end
object GridQuery: TIBQuery // Вот этот запрос и не работает
Database = IBDatabase
AutoCalcFields = False
BufferChunks = 1000
CachedUpdates = True
ParamCheck = False
SQL.Strings = ("Select * from ACCOUNT")
end
object GridQuery2: TQuery // Этот запрос посредством BDE прекрасно отрабатывается
DatabaseName = "DOG"
SQL.Strings = ("Select * from ACCOUNT")
end
end
← →
jack128 (2004-01-17 10:40) [5]
> открываю его обычным:
> DM.GridQuery.SQL.Clear; (DM - datamodule, GridQuery - TIBQuery)
Да? И с каких это пор IBQuery.SQL.Clear стал открывать запрос?
← →
Boroda Oleg (2004-01-17 11:02) [6]Пардон, не ту строчку скопировал.
Читать следует:
DM.GridQuery.Open;
То что было - очищает SQL :))
← →
Boroda Oleg (2004-01-17 14:55) [7]Ну вот, пока ждал ответа - додумался сам.
Оказывается, после вызова запроса коммандой:
DM.GridQuery.Open;
нужно (почему-то?) вызвать:
DM.GridQuery.FetchAll;
Почему - не знаю, при использовании BDE этого делать было не нужно. Может кто обьяснит?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c