ajuda com inset dados no banco via Zquery com e parametros
boa noite galera, sou novo no mundo delphi,rsrs
ai queria pedir a ajuda de vcs, tenho um formulario de cadastro. coloquei uma zquery para fazer o inset:
INSERT INTO cliente (nomecli,telcli,endcli,obscli,idadecli,dtnasccli)
VALUES (:nomecli,:telcli,:endcli,:obscli,:idadecli,:dtnasccli)
fiz o add dos parametros no Zquery, mudei os Daratype e os ParamType como manad o figurino
mas qunado eu ativo o Zquery da erro:[img]http://arquivo.devmedia.com.br/forum/imagem/359568-20140508-210737.png[/img]
seque o cod na procedure:
with DM.DataM.ZQueryCadCli do
begin
close;
SQL.Clear;
SQL.Add('INSERT INTO cliente (nomecli,telcli,endcli,obscli,idadecli,dtnasccli');
SQL.Add('VALUES(:nomecli,:telcli,:endcli,:obscli,:idadecli,:dtnasccli)');
ParamByName('nomecli').Value := EditNome.Text;
ParamByName('telcli').Value := EditTel.Text;
ParamByName('endcli').Value := EditEnd.Text;
ParamByName('obscli').Value := MemoCadCli.Text;
ParamByName('idadecli').Value := EditIdade.Text;
ParamByName('dtnasccli').Value := DateTimeCadCli.Date;
open;
end;
agradeco desde ja
ai queria pedir a ajuda de vcs, tenho um formulario de cadastro. coloquei uma zquery para fazer o inset:
INSERT INTO cliente (nomecli,telcli,endcli,obscli,idadecli,dtnasccli)
VALUES (:nomecli,:telcli,:endcli,:obscli,:idadecli,:dtnasccli)
fiz o add dos parametros no Zquery, mudei os Daratype e os ParamType como manad o figurino
mas qunado eu ativo o Zquery da erro:[img]http://arquivo.devmedia.com.br/forum/imagem/359568-20140508-210737.png[/img]
seque o cod na procedure:
with DM.DataM.ZQueryCadCli do
begin
close;
SQL.Clear;
SQL.Add('INSERT INTO cliente (nomecli,telcli,endcli,obscli,idadecli,dtnasccli');
SQL.Add('VALUES(:nomecli,:telcli,:endcli,:obscli,:idadecli,:dtnasccli)');
ParamByName('nomecli').Value := EditNome.Text;
ParamByName('telcli').Value := EditTel.Text;
ParamByName('endcli').Value := EditEnd.Text;
ParamByName('obscli').Value := MemoCadCli.Text;
ParamByName('idadecli').Value := EditIdade.Text;
ParamByName('dtnasccli').Value := DateTimeCadCli.Date;
open;
end;
agradeco desde ja
Pedro Henrique
Curtidas 0
Respostas
Wilton Júnior
08/05/2014
with DM.DataM.ZQueryCadCli do
begin
SQL.Clear;
SQL.Add('INSERT INTO cliente (nomecli,telcli,endcli,obscli,idadecli,dtnasccli');
SQL.Add('VALUES(:nomecli,:telcli,:endcli,:obscli,:idadecli,:dtnasccli)');
ParamByName('nomecli').Value := EditNome.Text;
ParamByName('telcli').Value := EditTel.Text;
ParamByName('endcli').Value := EditEnd.Text;
ParamByName('obscli').Value := MemoCadCli.Text;
ParamByName('idadecli').Value := EditIdade.Text;
ParamByName('dtnasccli').Value := DateTimeCadCli.Date;
Execsql;
end;
begin
SQL.Clear;
SQL.Add('INSERT INTO cliente (nomecli,telcli,endcli,obscli,idadecli,dtnasccli');
SQL.Add('VALUES(:nomecli,:telcli,:endcli,:obscli,:idadecli,:dtnasccli)');
ParamByName('nomecli').Value := EditNome.Text;
ParamByName('telcli').Value := EditTel.Text;
ParamByName('endcli').Value := EditEnd.Text;
ParamByName('obscli').Value := MemoCadCli.Text;
ParamByName('idadecli').Value := EditIdade.Text;
ParamByName('dtnasccli').Value := DateTimeCadCli.Date;
Execsql;
end;
GOSTEI 0
Pedro Henrique
08/05/2014
deu certo nao cara.
para dazer o insert eu tenho q usar o ZupdadeQSL junto com Zquery ou so o Zqyery resolve?
para dazer o insert eu tenho q usar o ZupdadeQSL junto com Zquery ou so o Zqyery resolve?
GOSTEI 0
Felippe Tadeu
08/05/2014
Boa tarde.
Você pode sim apenas usar a Zquery.
O erro está em que vc está usando TZQuery.Open onde deveria usar TZQuery.ExecSQL.
Quando se usa uma query para se fazer uma alteração no banco de dados, entende-se por alteração: update, delete e insert. , dessa maneira como vc usa, vc precisa colocar ExecSQL ao invés de Open.
Mas um dos erros fez parecer que não existe a tabela cliente.
Outra coisa, quando vc for fazer o insert experimente passar os valores dos parâmetros com seus devidos tipos.
Abraço, estou esperando retorno, caso ainda tenha o erro, poste o erro.
Você pode sim apenas usar a Zquery.
O erro está em que vc está usando TZQuery.Open onde deveria usar TZQuery.ExecSQL.
Quando se usa uma query para se fazer uma alteração no banco de dados, entende-se por alteração: update, delete e insert. , dessa maneira como vc usa, vc precisa colocar ExecSQL ao invés de Open.
Mas um dos erros fez parecer que não existe a tabela cliente.
Outra coisa, quando vc for fazer o insert experimente passar os valores dos parâmetros com seus devidos tipos.
Abraço, estou esperando retorno, caso ainda tenha o erro, poste o erro.
GOSTEI 0
Pedro Henrique
08/05/2014
alaplaia, deu certo. vlw pela dica.
se vc puder me tirar uma duvida. o componente "ZupdateSQL" ele faz a mesma coisa q o Zquery ?
e para o usar o "ZupdateSQL" tenho q relacionar ele na propriedade UpdateObject do Zquery?
grato desde ja.
se vc puder me tirar uma duvida. o componente "ZupdateSQL" ele faz a mesma coisa q o Zquery ?
e para o usar o "ZupdateSQL" tenho q relacionar ele na propriedade UpdateObject do Zquery?
grato desde ja.
GOSTEI 0
Felippe Tadeu
08/05/2014
Vish, essa vou ficar te devendo, essa não sei responder, foi mal.
GOSTEI 0
Pedro Henrique
08/05/2014
sem problemas velho. agradeco mesmo assim. obrigado pela a ajuda com o erro.
GOSTEI 0
Felippe Tadeu
08/05/2014
Por nada
GOSTEI 0
Isabela Pereria
08/05/2014
Pessoal eu estou com o mesmo problema segue o trecho do código<br /><br />
zquery.SQL.Clear;<br /><br />
zquery.SQL.Add(''''INSERT INTO GLO_EMPRESA '''');<br /><br />
zquery.SQL.Add(''''(CODIGO_EMPRESA, FANTASIA, RAZAO_SOCIAL, TIPO_DOCTO, CCC) '''');<br /><br />
zquery.SQL.Add(''''VALUES '''');<br /><br />
zquery.SQL.Add(''''(:PCODIGO_EMPRESA, :PFANTASIA, :PRAZAO_SOCIAL, :PTIPO_DOCTO, :PCCC)'''' );<br /><br />
zquery.Params.ParamByName(''''PCODIGO_EMPRESA'''').AsInteger := 1;<br /><br />
zquery.Params.ParamByName(''''PFANTASIA'''').AsString := ''''Teste Nome Fantasia'''';<br /><br />
zquery.Params.ParamByName(''''PRAZAO_SOCIAL'''').AsString := ''''Teste Razao Socials'''';<br /><br />
zquery.Params.ParamByName(''''PTIPO_DOCTO'''').AsString := ''''1'''';<br /><br />
zquery.Params.ParamByName(''''PCCC'''').AsString := ''''1985236512'''';<br /><br />
zQuery.ExecSQL;<br /><br />
<br /><br />
Esse ocorre o erro de numero de parametros invalido.<br /><br />
Estou usando Delphi 5 com Firebird
zquery.SQL.Clear;<br /><br />
zquery.SQL.Add(''''INSERT INTO GLO_EMPRESA '''');<br /><br />
zquery.SQL.Add(''''(CODIGO_EMPRESA, FANTASIA, RAZAO_SOCIAL, TIPO_DOCTO, CCC) '''');<br /><br />
zquery.SQL.Add(''''VALUES '''');<br /><br />
zquery.SQL.Add(''''(:PCODIGO_EMPRESA, :PFANTASIA, :PRAZAO_SOCIAL, :PTIPO_DOCTO, :PCCC)'''' );<br /><br />
zquery.Params.ParamByName(''''PCODIGO_EMPRESA'''').AsInteger := 1;<br /><br />
zquery.Params.ParamByName(''''PFANTASIA'''').AsString := ''''Teste Nome Fantasia'''';<br /><br />
zquery.Params.ParamByName(''''PRAZAO_SOCIAL'''').AsString := ''''Teste Razao Socials'''';<br /><br />
zquery.Params.ParamByName(''''PTIPO_DOCTO'''').AsString := ''''1'''';<br /><br />
zquery.Params.ParamByName(''''PCCC'''').AsString := ''''1985236512'''';<br /><br />
zQuery.ExecSQL;<br /><br />
<br /><br />
Esse ocorre o erro de numero de parametros invalido.<br /><br />
Estou usando Delphi 5 com Firebird
GOSTEI 0