| thaita Novato
 
  
 
 Registrado: Sábado, 26 de Novembro de 2022
 Mensagens: 44
 
 
 | 
			
				|  Enviada: Sáb Out 28, 2023 11:08 am    Assunto: RESOLVIDO - Como mostrar os dados de um campo de uma |   |  
				| 
 |  
				| Meus Prezados, Tenho duas tabelas a seguir:
 CREATE TABLE Editora (
 ID   INTEGER   PRIMARY KEY AUTOINCREMENT
 NOT NULL,
 Nome TEXT (60) NOT NULL
 );
 e a outra
 
 CREATE TABLE Livro (
 ID         INTEGER   PRIMARY KEY AUTOINCREMENT
 NOT NULL,
 ID_Editora INTEGER   REFERENCES Editora (ID) ON DELETE CASCADE
 ON UPDATE CASCADE,
 NomeLivro     TEXT (80) NOT NULL,
 Numero     INTEGER,
 Titulo     TEXT (80),
 Volume     INTEGER
 );
 
 Preciso mostrar em um TComboBox o campo Nome da Tabela Editora no formulário
 de cadastro de Livros(FrmCadastroLivros). Alguém pode me ajudar?
 Usei o exemplo abaixo da internet mas esta dando erro no params (pNome).
 Segue abaixo :
 
 procedure TfrmCadastroLivro.FormActivate(Sender: TObject);
 begin
 inherited;
 DmEditora.cdsEditora.Open;
 DmEditora.cdsEditora.First;
 while not DmEditora.cdsEditora.eof do
 begin
 ComboBox1.Items.Add(DmEditora.cdsEditoraNome.Value);
 DmEditora.cdsEditora.Next;
 end;
 e no evento onChange do ComboBox:
 
 procedure TfrmCadastroLivro.ComboBox1Change(Sender: TObject);
 begin
 inherited;
 with DmEditora.sqlEditora do
 begin
 Close;
 sql.Clear;
 sql.Add('Select *From Editora where Nome = pNome');
 ParamByName('PNome').AsString := ComboBox1.Text;
 Open;
 end;
 end;
 Alguém pode me ajudar? Agradeço desde já.
 
 
 
 
 
 
 
 end;
 
 Editado pela última vez por thaita em Dom Nov 05, 2023 2:57 pm, num total de 1 vez
 |  | 
	
		| natanbh1 Colaborador
 
  
 
 Registrado: Terça-Feira, 15 de Março de 2011
 Mensagens: 3093
 Localização: Belo Horizonte - MG
 
 | 
			
				|  Enviada: Seg Out 30, 2023 10:40 am    Assunto: |   |  
				| 
 |  
				| Na instrução SQL ao informar um parâmetro acrescente antes um sinal : (dois pontos. 
 
 Teste assim:
 
  	  | Código: |  	  | procedure TfrmCadastroLivro.ComboBox1Change(Sender: TObject); begin
 inherited;
 with DmEditora.sqlEditora do
 begin
 Close;
 sql.Clear;
 sql.Add('Select *From Editora where Nome = :pNome');
 ParamByName('PNome').AsString := ComboBox1.Text;
 Open;
 end;
 end;
 | 
 _________________
 ''A persistência é o caminho para o êxito.''
 Charlie Chaplin
 |  |