Ilano 0 Denunciar post Postado Outubro 27, 2010 Olá pessoal, Criei uma TZQuery em tempo de execução, o problema é q eustou tentando conectar um DBLookupComboBox mas não está retornando nada, é como se a query não estivesse aberta. Alguém pode me ajudar? procedure TForm1.FormCreate(Sender: TObject); Var Query : TZQuery; DS : TDataSource; campo : String; I : Integer; begin Query := TZQuery.Create(Self); DS := TDataSource.Create(Self); Try Query.Connection := CONEXAO; Query.Connection.Connected; Query.Close; Query.SQL.Clear; Query.SQL.Add('SELECT * FROM a_cidades'); Query.Open; DS.DataSet:=Query; DBLookupComboBox1.ListSource:=DS; DBLookupComboBox1.ListField:='Cid_Nome'; DBLookupComboBox1.KeyValue:='Cid_Codigo'; finally FreeAndNil(Query); end; end; Grato, Ilano. Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Outubro 27, 2010 Cara desculpa, mas não vai retornar mesmo, isso ai é uma procedure. Você pode explicar melhor o que esta acontecendo ou a linha em que da erro? Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Outubro 27, 2010 Olá Raficcha, Bem, o q estou querendo é criar uma TZQuery em run-time e fazer com que meus componentes (DBEdit, DBLookupComboBox, etc) possam receber os campos, mas me parece que preciso insatnaciá-los após a acriação da TZQuery. Pesquisando na net encontrei o exemplo abaixo, mas preciso fazer com que os campos sejam reconhecidos sem q eu precise passar os nomes (FieldName, Name, DisplayFormat) como no exemplo. Existe outra maneira de fazer isso? No post anterior, preciso listar as cidades no DBLookupComboBox mas daquela maneira não está vindo nada. procedure TForm1.btnIncluirCamposClick(Sender: TObject); var Field :TField; begin Query1.Close; Query1.Fields.Clear; Field := TIntegerField.Create(Query1); Field.DataSet := Query1; Field.FieldName := 'CdPasta'; Field.Name := 'Query1CdPasta'; Field := TIntegerField.Create(Query1); Field.DataSet := Query1; Field.FieldName := 'CdAssunto'; Field.Name := 'Query1CdAssunto'; Field.DisplayFormat := '0000'; Field := TStringField.Create(Query1); Field.DataSet := Query1; Field.FieldName := 'DsPasta'; Field.Size := 5; // *** Field.Name := 'Query1DsPasta'; Query1.Open; end; Compartilhar este post Link para o post Compartilhar em outros sites
Ilano 0 Denunciar post Postado Outubro 27, 2010 É engraçaco, nem msmo num DBGrid não mostra o resultado, e na tabela existem mais de 5.000 registros. O q está faltando fazer???? Como fazer??? procedure TForm1.FormCreate(Sender: TObject); Var Query : TZQuery; DS : TDataSource; begin Query := TZQuery.Create(Self); DS := TDataSource.Create(Self); Try Query.Connection := CONEXAO; CONEXAO.Connected:=True; With Query Do Begin Close; SQL.Clear; SQL.Add(' SELECT Cid_Codigo, Cid_Nome, Cid_Estado, Cid_DDD '); SQL.Add(' FROM a_cidades '); SQL.Add(' ORDER BY Cid_Estado, Cid_Nome'); Open; End; DS.DataSet:=Query; DS.Enabled:=True; DBLookupComboBox1.ListSource:=DS; DBLookupComboBox1.ListField:=DS.DataSet.FieldDefs[1].Name;; DBLookupComboBox1.KeyValue:=DS.DataSet.FieldDefs[0].Name;; DBLookupComboBox1.Refresh; DBGrid1.DataSource:=DS; finally FreeAndNil(Query); end; end; Compartilhar este post Link para o post Compartilhar em outros sites