Fórum Inserir dados com DBGrid #254354

13/10/2004

0

Pessoal,

Gostaria de fazer na minha aplicação o seguinte:

1- Em um form existe um DBGrid que uso para inserir dados numa tabela. Ao chamar esse form, passo alguns valores para os campos da tabela que vou trabalhar e gostaria que ao abrir o form esse dbgrid aparecesse vazio (não carregasse os dados que já estão na tabela) e a tabela já em modo de inserção mostrando os dados que passo ao chamar o form e os outros campos em branco para o usuário digitar. Como faço isso?

2- No dbgrid coloquei um dblookupcomboBox para o usuário selecionar o nome de uma empresa. Quando o usuário clica na lista para escolher é exibido o nome da empresa, mas depois de escolher está sendo exibido o código da empresa e na hora de gravar, está gravando o código que é o que quero. Como exibir depois do usuário escolher, o nome da empresa no dbgrid?

Obrigada


Barbara.michele

Barbara.michele

Responder

Posts

14/10/2004

Rômulo Barros

1- Em um form existe um DBGrid que uso para inserir dados numa tabela. Ao chamar esse form, passo alguns valores para os campos da tabela que vou trabalhar e gostaria que ao abrir o form esse dbgrid aparecesse vazio (não carregasse os dados que já estão na tabela) e a tabela já em modo de inserção mostrando os dados que passo ao chamar o form e os outros campos em branco para o usuário digitar. Como faço isso?


Vc poderá utilizar parâmetros e no momento de abrir a query, passe um valor nulo para o parâmetro. Após isso, é só dá um ´Insert´ na query.

:arrow: [color=blue:641fe33557]Vamos supor o seguinte SQL para a Query:[/color:641fe33557]

SELECT CAMPOS FROM TABELA
WHERE  CODIGO_CAMPO = :PARAMETRO

Query.Params[0].AsInteger := -10 ;

Query.Open(); 

// Neste momento, a query se abrirá com nenhum registro, uma vez q não existe no meu banco de dados nenhum registro cujo código seja -10.

[color=red:641fe33557][b:641fe33557]Deu pra entender?[/b:641fe33557][/color:641fe33557]



2- No dbgrid coloquei um dblookupcomboBox para o usuário selecionar o nome de uma empresa. Quando o usuário clica na lista para escolher é exibido o nome da empresa, mas depois de escolher está sendo exibido o código da empresa e na hora de gravar, está gravando o código que é o que quero. Como exibir depois do usuário escolher, o nome da empresa no dbgrid?


:arrow: [color=blue:641fe33557]Nesse caso Bárbara, poderemos utilizar um campo do tipo ´Lookup´. Para isso, siga os passos:[/color:641fe33557]

[color=blue:641fe33557][b:641fe33557]1 - [/b:641fe33557][/color:641fe33557]Selecione o Field que representa o campo CODIGO_EMPRESA na sua query e configure a propriedade [b:641fe33557]Visible = False[/b:641fe33557] (Isso faz com que o campo não seja mais visualizado no dbgrid)

[color=blue:641fe33557][b:641fe33557]2 -[/b:641fe33557][/color:641fe33557] Click de direita sobre o [b:641fe33557]Editor de Fields[/b:641fe33557] de sua query e adicione um novo Field ([b:641fe33557]Field Type = lookup[/b:641fe33557]). Na opção [b:641fe33557]KeyField[/b:641fe33557], escolha o campo que representa a Constraint (CAMPO_CODIGO). Na Opção [b:641fe33557]DataSet[/b:641fe33557], selecione uma Table ou Query q possui os dados da empresa. No campo [b:641fe33557]LookupKeyFields[/b:641fe33557], selecione o CAMPO_CODIGO presente na sua query atual. No campo [b:641fe33557]ResultField[/b:641fe33557], selecione o nome da empresa (está opção é a q será exibida no dbgrid);


Responder

Gostei + 0

14/10/2004

Barbara.michele

Mas o meu dbgrid está ligado a uma tabela e não a query.
Não consegui inserir noo dbgrid usando query. Como faço?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar