Fórum Definir DataSet do DataSource via código.. #365865
05/11/2008
0
Pessoal,
Como faço para definir em tempo de execução o DataSet a que o DataSource será ligado??? Estou fazendo assim:
Da o erro:
Incompatible types: ´TDataSet´ and ´String´
Se tiro as aspas ´´ tambem gera erro.
Como faço para definir em tempo de execução o DataSet a que o DataSource será ligado??? Estou fazendo assim:
with TDataSource.Create(Self) do begin Name := ´DsPa´+ IntToStr(i); Erro aqui -> DataSet := ´QryNomes´; end;
Da o erro:
Incompatible types: ´TDataSet´ and ´String´
Se tiro as aspas ´´ tambem gera erro.
Lincesmarques
Curtir tópico
+ 0
Responder
Posts
05/11/2008
Lincesmarques
Deixa eu me explicar melhor. É o seguinte, eu crio várias TQuerys com nomes diferentes e para cada TQuery eu crio um TDataSource. Exemplo:
Viu? vamos supor que numa query qualquer eu tenha 10 registros, então o laço for terá que criar 10 TQuerys, com o nome Query1, Query2, Query3, e assim sucessivamente até ter 10 TQuerys, e criar também 10 TDataSource, com o nome DataSource1, DataSource2, DataSource3, e assim sucessivamente até ter 10 TDataSource´s, só que no caso do TDataSource ele tem que se ligar através da propriedade ´DataSet´ ao seu TQuery correspondente que foi criado dinamicamente.
var i, registros : Integer; begin SQLQuery1.Open; registros := SQLQuery1.RecordCount; for i := 0 to registros do begin with TSQLQuery.Create(Self) do begin Parent:=Self; Name := ´QryPa´+ IntToStr(i); SQLConnection := fdm.ConectDados; SQL.Add(´SELECT * FROM TBNOMES´); Open; end; with TDataSource.Create(Self) do begin Parent:=Self; Name := ´DsPa´+ IntToStr(i); DataSet := ´QryPa´+ IntToStr(i); end; end;
Viu? vamos supor que numa query qualquer eu tenha 10 registros, então o laço for terá que criar 10 TQuerys, com o nome Query1, Query2, Query3, e assim sucessivamente até ter 10 TQuerys, e criar também 10 TDataSource, com o nome DataSource1, DataSource2, DataSource3, e assim sucessivamente até ter 10 TDataSource´s, só que no caso do TDataSource ele tem que se ligar através da propriedade ´DataSet´ ao seu TQuery correspondente que foi criado dinamicamente.
Responder
Gostei + 0
05/11/2008
Emerson Nascimento
tente assim:
ou assim:
var i, registros: Integer; qry: TQuery; begin SQLQuery1.Open; registros := SQLQuery1.RecordCount; for i := 0 to registros do begin qry := TSQLQuery.Create(Self); with qry do begin Parent := Self; Name := ´QryPa´+ IntToStr(i); SQLConnection := fdm.ConectDados; SQL.Add(´SELECT * FROM TBNOMES´); Open; end; with TDataSource.Create(Self) do begin Parent := Self; Name := ´DsPa´+ IntToStr(i); DataSet := qry; end; end;
ou assim:
var i, registros: Integer; qry: TQuery; begin SQLQuery1.Open; registros := SQLQuery1.RecordCount; for i := 0 to registros do begin with TSQLQuery.Create(Self) do begin Parent := Self; Name := ´QryPa´+ IntToStr(i); SQLConnection := fdm.ConectDados; SQL.Add(´SELECT * FROM TBNOMES´); Open; end; with TDataSource.Create(Self) do begin Parent := Self; Name := ´DsPa´+ IntToStr(i); DataSet := TDataset(Self.FindComponent(´QryPa´+ IntToStr(i))); end; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)