Caro Higor, eu resolveria o teu problema da seguinte maneira Situação Geral
Formulário da tabela de cursos: Unit: uCursos Form: frmCursos Componentes citados nesse exemplo: ClientDataSet, DBGrid; Campos da tabela: IdCurso, Curso. Formulário da tabela de turmas: Unit: uTurmas Form: frmTurmas Componentes citados nesse exemplo: SQLQuery, ClientDataSet e DBGrid; Componentes da tabela: IdTurma, Turma, IdCurso Na propriedade SQL da SQLQuery faça o seguinte: Select IdTurma, Turma, IdCurso From Turmas Where IdCurso =:pIdCurso (Observação: A clausula where do teu exemplo, nesse contexto que voce pede, está errada, pois where c.curso_cd_codigo = t.curso_cd_codigo deve deve ter um parâmetro da seguinte maneira: where c.curso_cd_codigo =:pt.curso_cd_codigo (perceba os dois pontos, ele fica junto a primeira letra do parâmetro, use a letra (p) para mostrar que é parâmetro); pIdCurso é o parâmetro que você vai chamar da outra tabela (Cursos) para que seja mostrado apenas os dados do curso selecionado. Agora selecione o clientDataSet, clique com o botão direito e selecione a opção fetch Params (o fetch params permite que você passe o parâmetro pIdCurso do ClientDataSet para a Query - fica mais fácil de trabalhar), agora: Vá na propriedade params do clientDataSet e você verá o pIdCurso lá (selecione-o). Agora configure as seguintes propriedades: DataType: ftString (lembre-se deve ser o mesmo tipo de dado da chave primária da tabela de cursos) ParamType: ptInput OK, sua conexão está configurada e esperando o parâmetro. Próximos passos: 1º - Crie uma variável public, por exemplo - Id:integer ou string (mesmo tipo de dado da chave primária), para capturar a chave primária da tabela de cursos; 2º - No evento double click do dbgrid passar a chave primária para a variável Id := ClientDataSetIdCurso.Value; 3º - No form da tabela de turmas chamar a unit da tabela de cursos. (Para referenciar a variavel Id) uses uCursos; 4º - No evento BeforeOpen ClientDataSet faça o seguinte: var Id: integer ou string begin Id := frmCursos.ClientDataSetIdCurso.Value; ClientDataSet.Params['pIdCurso'].asString := Id; 5º - No evento OnShow do frmTurmas: ClientDataSet.Close; ClientDataSet.Open; Assim toda vez que você der um duplo clique (ou pode ser de outra forma) no dbGrid do frmCuros, abrirá o frmTurmas com um select parametrizado chamando apenas as turmas do curso referido. Todo dia é dia de renovar nosso destino ----- Mensagem original ---- De: tarcan_se <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 2 de Abril de 2008 0:04:45 Assunto: [delphi-br] Passar parâmetros para a query! Boa noite pessoa, gostaria da ajuda de vocês com uma dúvida Estou fazendo um Sistema e estou querendo buscar o nome de alguns campos de umas tabelas partindo da informação vinda de outra, da seguinte forma. Tenha as tabelas Turma, Curso. Quero pegar o nome do Curso que vou comparar com o código que tenha na tabela de Turma e colocar em outra tela. Direto no banco fiz os seguintes testes e funcionaram sem problema: select c.curso_tx_nome from curso c, turma t where c.curso_cd_codigo = t.curso_cd_codigo Mas para funcionar no sistema preciso passar como referência o código do curso que está no form de turma em um edit para uma query que vai retornar o valor para um edit em outra tela. Estou querendo saber como faço para passar um Componente como Parâmetro em uma sequência de comandos SQL para um Query?? Desde já muito obrigado pela ajuda. []'s Higor Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]