Ir para conteúdo

POWERED BY:

Arquivado

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

Rodrigo Miss

[Resolvido] Insert Into

Recommended Posts

Ola Galera,, to usando uma conexao ADO no meu projeto,,, e no fazendo da seguinte forma:evendo clike do botao salvarqry.Close;qry.SQL.Clear;qry.SQL.Add('Insert into contatos');qry.SQL.Add('contatos.nome,contatos.cidade,contatos.telefone,contatos.data_nasc');qry.SQL.Add('values ');qry.SQL.add(txtcidade.Text + txttelefone.Text);qry.Open;e qto roda o projeto, da erro de sintaxe na instrucao insert into...aguem pode me dizer oke tm de errado...Obs: Banco Acces...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para efetuar este insert por comando, você terá de mudar um pouco, ficando algo do tipo:

 

Insert into Contatos(nome,cidade,telefone,data_nasc) values (txtNome,txtCidade,txtTelefone,txtDataNascimento)

sendo q os campos do tipo string você deve de ter o controle de aspas;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ele da uma mensagem aki "O parametro nome naum tm valor padrao"oke sera q fiz de errado?

/]@t' date='24/08/2006 - 11:28' post='625936']Para efetuar este insert por comando, você terá de mudar um pouco, ficando algo do tipo:

Insert into Contatos(nome,cidade,telefone,data_nasc) values (txtNome,txtCidade,txtTelefone,txtDataNascimento)
sendo q os campos do tipo string você deve de ter o controle de aspas;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o que você esta mandando inserir, no caso coloca o comando q esta mandando fazer, e você pode ainda salvar o comando SQL q ele vai executar, colocando SaveToFileqry.Close;qry.SQL.Clear;qry.SQL.Add('seu comando');qry.SQL.SaveToFile(c:\sql.txt');qry.ExecSQL;e coloca aqui o q ele gravou no arquivo texto.E lembrando que você deve de fazer qry.ExecSQL, e não qry.Open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... para começar os seus campos do tipo string iram precisar estar entre aspas, como:Insert into Contatos(contatos.nome,contatos.cidade,contatos.telefone,contatos.data_nasc) values (teste,'teste','teste','24/11/2006')bem como a data, não sei o seu banco de dados que você usar, mas dependendo terá de ser MM/DD/AAAA, e o seu campo contatos tb naum sei de q tipo ele é, caso seja integer, não precisa das aspas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa,,,a insistencia...+ eu fiz assim:qry.Close;qry.SQL.Clear;qry.SQL.Add('Insert into Contatos(contatos.nome,contatos.cidade,contatos.telefone,contatos.data_nasc) values ('+txtNome.Text+','+txtCidade.Text+','+txtTelefone.Text+','+txtDataNasc.Text+')');qry.SQL.SaveToFile('c:\sql.txt');qry.ExecSQL;o campo data esta com texto no banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

qry.Close;qry.SQL.Clear;qry.SQL.Add('Insert into Contatos(contatos.nome,contatos.cidade,contatos.telefone,contatos.data_nasc) values ('''+txtNome.Text+''','''+txtCidade.Text+''','''+txtTelefone.Text+''','''+txtDataNasc.Text+''')');qry.ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe levantar esse post.

Mais estava com a mesma duvida, e parece que resolve mais não entendi o porque precisaria ter mais de 3 aspas em cada objeto.

 

Alguem poderia me explicar para entender o conceito e poder usar em outros casos?

 

 

Abraços

 

PS: coloquei mais deu erro.

ibqInsert.Close;

ibqInsert.SQL.Clear;

ibqInsert.SQL.Add ('Insert into ENTIDADES (ENTIDADEID, ENTIDADE, CNPJ, CONTATO, TELEFONE)');

ibqInsert.SQL.Add ('Values (gen(GEN_ENTIDADEID, 1), ''' + edEntidade.Text + ''' , ''' + edCnpj.Text + ''', ''' + edContato.Text + ''', ''' + edTelefone.Text + ''')');

ibqInsert.ExecSQL;

o que esatria errado?

 

O erro é: "can not find default login prompt dialog"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi o problema, esta funcionando.

 

Agora gostaria apenas de saber o conceito.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você vai inserir valores em campos tipo data e string, você tem que enviar os mesmos entre '' (aspas simples) para a rotina gravar corretamente.... no caso, poderia ter usado o QuotedStr(edit1.text) para já jogar o valor com as aspas.

 

No seu insert, na verdade, você estava mandando esta informação para a select:

 

Insert into ENTIDADES (ENTIDADEID, ENTIDADE, CNPJ, CONTATO, TELEFONE)
Values ( 12, 'entidade' , 'cnpj', 'Contato', 'Telefone')

No caso, você precisava de 3 aspas porque duas eram usadas para a variável string e outra para a vírgula, para que quando fosse pro BD a sua select ficasse como a que escrevi acima.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você vai inserir valores em campos tipo data e string, você tem que enviar os mesmos entre '' (aspas simples) para a rotina gravar corretamente.... no caso, poderia ter usado o QuotedStr(edit1.text) para já jogar o valor com as aspas.

 

No seu insert, na verdade, você estava mandando esta informação para a select:

 

Insert into ENTIDADES (ENTIDADEID, ENTIDADE, CNPJ, CONTATO, TELEFONE)
Values ( 12, 'entidade' , 'cnpj', 'Contato', 'Telefone')

No caso, você precisava de 3 aspas porque duas eram usadas para a variável string e outra para a vírgula, para que quando fosse pro BD a sua select ficasse como a que escrevi acima.

 

[]'s

Humm, entendi agora fiz e funcionou certinho, mais fui tentar usar o mesmo conceito para o Update e não funcionou.

 

If Modo = 'Alterar' Then Begin

ibqUpdate.Close;

ibqUpdate.SQL.Clear;

ibqUpdate.SQL.Text := 'Update ENTIDADE SET ENTIDADE = '''+ edEntidade.Text + ''' , CNPJ = '''+edCnpj.Text+''', CONTATO = '''+edCONTATO.Text+''', TELEFONE = '''+edTelefone.Text+'''' +

'Where ENTIDADEID = Gen_Id (Gen_ENTIDADEID, 0)';

ibqupload.ExecSQL;

End

Else

ibqInsert.Close;

ibqInsert.SQL.Clear;

ibqInsert.SQL.Add ('Insert into ENTIDADES (ENTIDADEID, ENTIDADE, CNPJ, CONTATO, TELEFONE)');

ibqInsert.SQL.Add ('Values (Gen_Id(GEN_ENTIDADEID, 1), ''' + edEntidade.Text + ''', ''' + edCnpj.Text + ''', ''' + edContato.Text + ''', ''' + edTelefone.Text + ''')');

ibqInsert.ExecSQL;

 

 

Pensei agora se poderia ser o canpo CNPJ e TELEFONE estarem no banco como integer, mais deu erro, e se fosse isso não funcionaria no insert, correto?

 

O estranho é que quando tentou usar o debug e ponho o mouse por cima ele mostra todos os campos corretamente mais se mando segui vem o erro.

 

Até tirei o where pra testar pra ver se era ele que devo ter errado mais tb da erro. Porém acho que ele tb ta errado...

 

MUITO OBRIGADO PELA AJUDA!!!>.. ABRAÇOS

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.