Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизdbExpress. Создание редактируемого набора данных в runtime Найти похожие ветки
← →
Alex Bakulin (2006-07-24 13:36) [0]Мне нужно в runtime создать связку
SQLConnection - SQLTable - Provider - ClientDataSet - DataSource
Когда делаю ее в designtime - все в порядке и работает. Когда создаю эту же связку в runtime, то при активизации ClientDataSet появляется ошибка Missing Data Provider or data packet.
Связка с провайдером идет по имени. Имя для созданного в runtime провайдера генерю при помощи GUID (убираю все лишнее и начинаю с буквы). Может быть затык в этом? Тогда как победить?
← →
Johnmen © (2006-07-24 13:49) [1]Как ты делаешь в рантайм мы не видим.
← →
Alex Bakulin (2006-07-24 13:54) [2]FSQLTable: TSQLTable;
FDS: TDataSource;
ClientDS: TClientDataSet;
DSProvider: TDataSetProvider;
s: string
...
FSQLTable := TSQLTable.Create(nil);
FSQLTable.SQLConnection := (Collection as TSQLTableCollection).Connection; //соединение есть и активно
FDS := TDataSource.Create(nil);
ClientDS := TClientDataSet.Create(nil);
DSProvider := TDataSetProvider.Create(nil);
DSProvider.DataSet := FSQLTable;
s := GetGUID; //возвращает GUID без "лишних" элементов
while (s[1] in ["0".."9"]) do
s := copy(s, 2, Length(s)-1);
DSProvider.Name := s;
FDS.DataSet := ClientDS;
ClientDS.ProviderName := DSProvider.Name;
..
FSQLTable.Active := Value; //тут все нормально данные есть и т.д.
ClientDS.Active := Value; // а вот тут ошибка...
← →
Reindeer Moss Eater © (2006-07-24 13:56) [3]DSProvider.Name := s;
ShowMessage(DSProvider.Name);
← →
Johnmen © (2006-07-24 13:58) [4]ClientDS.ProviderName := DSProvider;
← →
Alex Bakulin (2006-07-24 13:58) [5]Ctrl+F7 (DSProvider.Name)
"F14A4B8781D9D000F6AE85CF" или аналогично
← →
Alex Bakulin (2006-07-24 13:59) [6]
> ClientDS.ProviderName := DSProvider;
Даже не компилится. Это string
← →
Johnmen © (2006-07-24 14:02) [7]
> Даже не компилится. Это string
В апострофы...
← →
Reindeer Moss Eater © (2006-07-24 14:02) [8]if the provider is in the same application as the client dataset, it must have the same Owner as the client dataset. To use a local provider that has a different Owner, use the SetProvider method instead.
← →
Alex Bakulin (2006-07-24 14:04) [9]
> To use a local provider that has a different Owner, use
> the SetProvider method instead.
Спасибо, заработало!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c