![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подключение к Oracle и выборке данных... [D7]
vigo © (2005-07-14 15:40:00)Добрый день!
Пытаюсь извлечь данные из таблицы, например, CLIENT схемы Invo. Указываю все это в параметра компонента TSQLTable, но "активируя" таблицу (Active := True) ругается: "ORA-00942: таблица или представление пользователя не существует". Причем TableName выбираю из списка...
И второй вопрос: какой компонент использовать для отображения данных таблицы (что-то вроде TDataSource и TDBGrid для локальных БД)?
Desdechado (2005-07-14 19:47:00) [1]Все наборы данных в dbExpress однонаправленные и это правильно.
Хочешь навигации, прикручивай прослойку.
http://delphimaster.ru/cgi-bin/forum.pl?id=1121350756&n=1
Reindeer Moss Eater (2005-07-14 17:35:00) [2]Ну так я с самого начала и спросил: какие компоненты использовать для отображения данных таблицы...
не для отображения данных, а для доступа к данным.
Потому что грид прекрасно отображает данные.
Reindeer Moss Eater (2005-07-14 17:33:00) [3]Мне помнится, что в dbExpress для того, что бы поиметь датасет в гриде надо было прикручивать их ClientDataSet к однонаправленному потомку TCustomSQLDataSet.
vigo (2005-07-14 17:33:00) [4]
> значится, тебе не повезло. Смени компоненты
:-)
Ну так я с самого начала и спросил: какие компоненты использовать для отображения данных таблицы...
ANB (2005-07-14 17:29:00) [5]
> vigo (14.07.05 17:24) [13]
- значится, тебе не повезло. Смени компоненты.
Reindeer Moss Eater (2005-07-14 17:26:00) [6]Все верно.
vigo (2005-07-14 17:24:00) [7]то есть
SQLTable.IsUniDirectional := False;
ошибка при компиляции...
[Error] Unit1.pas(85): Cannot assign to a read-only property
vigo (2005-07-14 17:21:00) [8]Описываю от начала до конца:
На форму положил компонент SQLConnection, настроил.
Положил TButton, TSQLTable, TDataSource, TDBGrid.
procedure TForm1.Button1Click(Sender: TObject);
begin
try
SQLConnection.Connected := True;
SQLConnection.Open;
except
on E: Exception do ShowMessage(E.Message);
end;
SQLTable.SchemaName := 'INVO';
SQLTable.TableName := 'CLIENT';
SQLTable.Active := True;
end;
Запускаю, нажимаю button и на строке SQLTable.Active := True возникает except, если SQLTable, грубо говоря, "отвязать" от DBGrid'a, то никакого except'a не возникает.
Я подумал, что unidirectional это свойство компонента, но найти не удалось.
Reindeer Moss Eater (2005-07-14 17:05:00) [9]IsUniDirectional indicates whether the dataset is a descendant of TCustomSQLDataSet.
То есть его не отключить.
ANB (2005-07-14 16:56:00) [10]Похоже, dbExpess. Там не знаю. У тебя запрос открылся ?
ANB (2005-07-14 16:53:00) [11]
> vigo (14.07.05 16:50) [8]
- а ты чем коннектишься к оракле ?
vigo (2005-07-14 16:50:00) [12]"так выключи unidirectional"
А как?
(я с этим не сталкивался...)
ANB (2005-07-14 16:38:00) [13]По сабжу : попробуй явно указать в запросе схему. Типа Invo.Client.
ANB (2005-07-14 16:36:00) [14]
> vigo (14.07.05 16:30) [4]
так выключи unidirectional. У тебе включен однонаправленный курсор. А грид с таким не работает.
Val (2005-07-14 16:36:00) [15]1. прочитайте что такое "unidirectional dataset" и соотв. ограничения.
2. замените TSQLTable на что-то квериподобное, если эта штуковина некий аналог TTable - c SQL серверами не работают через него - тащит всю таблицу на клиента - не надо этого.
vigo (2005-07-14 16:30:00) [16]Использую TDBGrid и в параметрах TDataSource указываю DataSet: TSQLTable, - пишет ошибку: "Operation not allowed on a unidirectional dataset".
Val (2005-07-14 16:19:00) [17]по вашему - есть разница для сетки, например?
vigo (2005-07-14 16:17:00) [18]А по поводу второго вопроса?
Reindeer Moss Eater (2005-07-14 16:05:00) [19]Либо таблицы действительно нет в схеме, либо она создана с чувствительным к регистру именем.