Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo R. Souza

Erro: ADOQuery1: Missing SQL property

Recommended Posts

Boa tarde... Pessoal estou começando a estudar trabalhar com Delphi... Necessito realizar um simples cadastro de Clientes utilizando SQL Server 2005, ADOConnection e ADOQuery. Ao clicar no botão para realizar o insert no banco aparece a seguinte mensagem: ADOQuery1: Missing SQL property Acredito que o erro está no comando SQL. Abaixo o código do botão.

 

 

procedure TfrmInserirClientes.BitBtn7Click(Sender: TObject);
begin
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('Insert into clientes'
                        +'(cliente_codigo, cliente_razao, cliente_nome, cliente_contato,'
                        + ' cliente_endereco, cliente_numero, cliente_complemento,'
                        + ' cliente_bairro, cliente_cidade, cliente_uf, cliente_cep,'
                        + ' cliente_caixapostal, cliente_telefone, cliente_telefone2,'
                        + ' cliente_fax, cliente_email, cliente_cpj, cliente_cpf,cliente_rg,'
                        + ' cliente_insc, cliente_pessoa, cliente_comentario)'
                        +'values('
                        +Edit1.Text //codigo
                        +', '
                        +QuotedStr(Edit2.Text)//razão
                        +', '
                        +QuotedStr(Edit3.Text)//nome
                        +', '
                        +QuotedStr(Edit4.Text)//contato
                        +', '
                        +QuotedStr(Edit5.Text)//endereco
                        +', '
                        +Edit6.Text //numero
                        +', '
                        +QuotedStr(Edit7.Text)//complemento
                        +', '
                        +QuotedStr(Edit8.Text) //bairro
                        +', '
                        +QuotedStr(Edit9.Text) //cidade
                        +', '
                        +QuotedStr(ComboBox1.Text)//uf
                        +', '
                        +QuotedStr(Edit10.Text) //cep
                        +', '
                        +Edit11.Text //caixapostal
                        +', '
                        +QuotedStr(Edit12.Text) //telefone
                        +', '
                        +QuotedStr(Edit13.Text) //telefone2
                        +', '
                        +QuotedStr(Edit14.Text) //fax
                        +', '
                        +QuotedStr(Edit15.Text) //email
                        +', '
                        +QuotedStr(Edit16.Text) //cnpj
                        +', '
                        +QuotedStr(Edit17.Text) //cpf
                        +', '
                        +Edit19.Text  // rg
                        +', '
                        +QuotedStr(Edit18.Text)  //inscricao
                        +', '
                        +QuotedStr(t) //pessoa
                        +', '
                        +QuotedStr(Memo1.Text)//comentario
                        +')'
                  );
  ADOQuery1.ExecSQL;
end;

Se alguem puder me ajudar agradeço desde já... Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

 

bom o seu problema deve estar basicamente nisto que vou citar, você tem que colocar aspas simples nos valores que são strings no value

 

exemplo:

 

este é o formato que a query deve ficar:

 

Insert into clientes(cliente_codigo, cliente_razao)values(1234,'razão social')

 

Código:

 

+'values('
+Edit1.Text //codigo      
+', '
+'''             
+QuotedStr(Edit2.Text)//razão
+'''

Você vai usar isto apenas para campos da tabela que vão receber algum texto, os campos numericos nao necessitam de aspas

 

Ve se isto resolve, qualquer coisa estamos ai.

 

 

abraços,

 

Alexandre Mury

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alexandre obrigado pela preocupação.

 

Porém no código SQL que forneci, creio que o comando QuotedStr() tem a função de inserir as aspas simples. Tando que se você trocar o comando ADOQuery1.SQL.Add pelo comando ShowMessage, ao clicar no botão será exibido uma mensagem contendo a fução insert, nela será exibido os campos numericos sem as aspas e os campos strings com as aspas devido ao QuotedStr().

 

Acredito que esse não é meu erro.

 

Mais uma vez obrigado pela preocupação.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quantos caracteres são inseridos nesse seu comando sql? As TQuerys tem uma limitação de só aceitar add até 255 caracteres por vez... se sua query por exemplo tiver 400 caracteres, você precisa quebrar a mesma em dois ou mais add no TQuery ou jogar ela numa variável string e dar o add com a variável como parâmetro que ai o comando funciona corretamente...

 

[]'s

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.