Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.426 c
15-1157094346
vidiv
2006-09-01 11:05
2006.09.24
Относится ли данная ситуация к ФОРС-МАЖОРу...


15-1157537474
Alarm
2006-09-06 14:11
2006.09.24
CopyRight на CD


3-1153473158
dj0n
2006-07-21 13:12
2006.09.24
Подскажите пожалуйста про InterBase


15-1157019915
Idiot
2006-08-31 14:25
2006.09.24
Есть ли что то на подобе процедуры VAL в БД ....


15-1157316709
Mr.Devil
2006-09-04 00:51
2006.09.24
Получение уникального кода компьютера...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский