Ir para conteúdo
Fórum Script Brasil
  • 0

Sql


Guest - Marcos Tavares -

Pergunta

Guest - Marcos Tavares -

Prezados colegas,

Estou começando a trabalhar com Delphi há pouco tempo e escolhi usar o Access e o SQL em meus sistemas, só que estou com uma pequena dificuldade em inserir registros no BD Access através do comando “INSERT” do SQL. Estou querendo fazer a inserção através de um botão “TButton”, mas infelizmente não estou conseguindo. Vou tentar ser mais detalhista. Criei uma aplicação onde terá que fazer o cadastramento dos clientes, fiz a referência ao DataModule ao onde estão TADOConnection, TADOQuery e, claro o TDataSource, ambos estão interligados uns aos outros, sendo que o TADOConnection está acessado ao BD do Access que criei. Este DataModule foi referenciado na Form onde estou criando a inserção dos clientes. Na visualização dos clientes onde uso o “SELECT” do SQL, ele funciona normalmente, mas quando uso o “INSERT” para inserir, ele dá um erro. Vou lhe mostrar meu código, tentei de duas formas, vamos a primeira:

procedure TfrmInsereCliente.btnInsereClick(Sender: TObject);

begin

if ncadastro.Text = '' then

begin

showmessage('Favor colocar o nome');

end

else if fcadastro.Text = '' then

begin

showmessage('Favor colocar o telefone');

end

else

datamodule1.AdoQuery.Close;

datamodule1.AdoQuery.SQL.Clear;

datamodule1.AdoQuery.SQL.Add('Insert Into Clientes(idCliente,Nome,Fone)');

datamodule1.AdoQuery.SQL.Add('Values'+id+','+ncadastro+','+fcadastro); // Aqui dá o erro

datamodule1.AdoQuery.Open;

end;

end.

Agora a segunda forma. Vejam:

....

datamodule1.AdoQuery.Close;

datamodule1.AdoQuery.SQL.Clear;

datamodule1.AdoQuery.SQL.Insert('Insert Into Clientes(idCliente,Nome,Fone)');

datamodule1.AdoQuery.SQL.Insert('Values'+id+','+ncadastro+','+fcadastro);

datamodule1.AdoQuery.Open

.....

Mas o erro continua. O erro que dá é: “Tipos incompatíveis: ‘String’ e ‘Inteiros’”.

Criei no meu sistema as variáveis “id, ncadastro, fcadastro”, do qual foi o nome que dei a cada campo. Criei por desencargo de consciência variáveis Globais e também variáveis Locais, só que em ambos continuam dando erro. Veja abaixo as variáveis criadas:

id: integer;

ncadastro,fcadastro: string;

Nos campos criados foram usados o Edit e o DBEdit.

Peço-lhe para que avaliem meu código e me informem onde eu errei, pois como disse acima, estou começando a trabalhar no Delphi agora e como a maioria sou um “autodidata”.

Conto com a colaboração de vocês.

Abraços []’s

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

procedure TfrmInsereCliente.btnInsereClick(Sender: TObject);

begin
if ncadastro.Text = '' then
begin
showmessage('Favor colocar o nome');
end
else if fcadastro.Text = '' then
begin
showmessage('Favor colocar o telefone');
end
else
datamodule1.AdoQuery.Close;
datamodule1.AdoQuery.SQL.Clear;
datamodule1.AdoQuery.SQL.Add('Insert Into Clientes(idCliente,Nome,Fone)');
datamodule1.AdoQuery.SQL.Add('Values('+inttostr(id)+','+quotedstr(ncadastro)+','+quotedstr(fcadastro)); // Aqui dá o erro
datamodule1.AdoQuery.Open;
end;
end.

Link para o comentário
Compartilhar em outros sites

  • 0
if ncadastro.Text = '' then
id: integer;

ncadastro,fcadastro: string;

Aparentemente você utilizou o mesmo nome para os componentes Edit e variáveis globais, assim acredito que o exemplo colocado pelo colega CorN_Sk8 mostra como corrigir seu código para utilizar as variáveis globais:

datamodule1.AdoQuery.SQL.Add('Values('+inttostr(id)+','+quotedstr(ncadastro)+','+quotedstr(fcadastro)); // Aqui

Se for utilizar os componentes Edit ou DBEdit, você deverá utilizar a propriedade Text (também observei que faltou adicionar o ")" da instrução Values):

datamodule1.AdoQuery.SQL.Add('Values('+inttostr(id)+','+quotedstr(ncadastro.Text)+','+quotedstr(fcadastro.Text)+')'); // Aqui 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...