Fórum Problema besta com BD em Acess(ADO Conecction e CIA) #193156

06/11/2003

0

Oi galerinha, mas uma vez venho com minhas dúvidas bestas heheheh :P .
Tenho um BD em Acess, mas quando uso o botão para inserir/Alterar etc, ele diz q tá com erro de sintaxe. Queria saber mesmo se está ou se eu fiz alguma coisa errada. Sou iniciante e num sako muito ainda. Queria saber se é o BD que naum aceita gravações ou qual é o pro!

Obrigado :wink:


Dead_thinker

Dead_thinker

Responder

Posts

06/11/2003

Rodrigo Costa

caro amigo,

Coloque o código aqui (a parte que interessa) para nós podermos ajudá-lo.


Responder

Gostei + 0

06/11/2003

Dead_thinker

Desculpe pessoal, esqueci de colocar o cod. Ai está:

procedure TForm1.Button1Click(Sender: TObject); //Incluir
begin
WITH QGERAL DO BEGIN
CLOSE;
SQL.CLEAR;
SQL.ADD(´Insert into Endereços´);
SQL.ADD(´(COD,NOME,TEL,END) Values´);
SQL.ADD(´(:0_COD,:1_NOME,:2_TEL,:3_END)´);
Parameters[0].Value:= strtoint(EDIT1.Text);
Parameters[1].Value:= EDIT2.Text;
Parameters[2].Value:= EDIT3.Text;
Parameters[3].Value:= Edit4.Text;
EXECSQL;
end;
SHOWMESSAGE(´REGISTRO INCLUIDO !´);
end;

procedure TForm1.Button2Click(Sender: TObject); //Alterar
begin
WITH QGERAL DO BEGIN
CLOSE;
SQL.CLEAR;
SQL.ADD(´UPDATE Endereços SET´);
SQL.ADD(´COD = :0_COD,´);
SQL.ADD(´NOME = :1_NOME,´);
SQL.Add(´TEL = :2_TEL,´);
SQL.ADD(´END = :3_END,´);
SQL.ADD(´WHERE COD = :4_COD´);
Parameters[0].Value:= strtoint(EDIT1.Text);
Parameters[1].Value:= EDIT2.Text;
Parameters[2].Value:= EDIT3.Text;
Parameters[3].Value:= EDIT4.Text;
Parameters[4].Value:= StrToInt(Edit1.Text);
EXECSQL;
end;
SHOWMESSAGE(´REGISTRO ALTERADO !´);
end;


Responder

Gostei + 0

06/11/2003

Brnz

creio ... note... CREIO... q seu problema esta nas quebras de linhas do SQL... do tipo... ponha tudo num ADD soh...

Creio q seja isso pq por exemplo a consulta

sql.add(´select * from´);
sql.add(´tabela´);

naum funfa... mas...
sql.add(´select * from tabela´); tah mais do q certo...

achu q eh issow...

flow...

BRNz...


Responder

Gostei + 0

06/11/2003

Brnz

SAKEEEEEEEEEI

qdo dah sql.add ele naum quebra as linhas na verdade...

intaum... se quiseres manter em diversos add ponha um espaço no final de cada q seja necessario...

tipo

WITH QGERAL DO BEGIN 
CLOSE; 
SQL.CLEAR; 
SQL.ADD(´Insert into Endereços{-->} {<--}´);
SQL.ADD(´(COD,NOME,TEL,END) Values{-->} {<--}´); 
SQL.ADD(´(:0_COD,:1_NOME,:2_TEL,:3_END)´); 
Parameters[0].Value:= strtoint(EDIT1.Text); 
Parameters[1].Value:= EDIT2.Text; 
Parameters[2].Value:= EDIT3.Text; 
Parameters[3].Value:= Edit4.Text; 
EXECSQL; 



Responder

Gostei + 0

06/11/2003

Rodrigo Costa

Ou então faça de outra maneira:

adoquery.insert; //é o mesmo que append !
adoquery.fieldbyname(´COD´).asinteger:=strtoint(edit1.text);
adoquery.fieldbyname(´NOME´).asstring:=edit2.text;
adoquery.fieldbyname(´TEL´).asstring:=edit3.text;
adoquery.fieldbyname(´END´).asstring:=edit4.text;
adoquery.post; //grava


usar sql é melhor mesmo, mas talvez, usar os métodos seja mais fácil:

insert ou append - libera um novo registro em branco;
cancel - cancela o processo
delete - apaga o regsitro
edit - libera o registro para alteração (requer um post após a alteração)
post - grava o registro


Responder

Gostei + 0

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

Aceitar