Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ilano

O que está faltando neste código

Recommended Posts

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

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

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

É 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.