o que ha de errado, com esse procedimento
27/01/2006
0
procedure PreencheParametros(frm:TWinControl);
begin
dm1.DataSetDados.Close;
dm1.DataSetDados.CommandType := ctStoredProc;
dm1.DataSetDados.CommandText := Tabela;
dm1.DataSetDados.ParamByName(´I_ACAO´).AsString := acao;
for i:=0 to frm.ComponentCount -1 do
begin
if frm.Components[i] is TCustomEdit then
begin
if TCustomEdit(frm.Components[i]).Text <> ´´ then
dm1.DataSetDados.ParamByName(frm.Components[i].name).Value := TCustomEdit(frm.Components[i]).Text
else
dm1.DataSetDados.ParamByName(frm.Components[i].name).Clear;
end;
if frm.Components[i] is TMaskEdit then
begin
if TCustomEdit(frm.Components[i]).Text <> ´´ then
dm1.DataSetDados.ParamByName(frm.Components[i].name).Value := TMaskEdit(frm.Components[i]).Text
else
dm1.DataSetDados.ParamByName(frm.Components[i].name).Clear;
end;
if frm.Components[i] is TComboBox then
begin
if TCustomEdit(frm.Components[i]).Text <> ´´ then
dm1.DataSetDados.ParamByName(frm.Components[i].name).Value := TComboBox(frm.Components[i]).Text
else
dm1.DataSetDados.ParamByName(frm.Components[i].name).Clear;
end;
end;
dm1.DataSetDados.ExecSQL();
end;
Uiliangurjon
Posts
27/01/2006
Uiliangurjon
->>>>>ERRO_INSERT (esta na procedure)
CREATE PROCEDURE MANUTENCAO_BAIRRO (
I_ACAO VARCHAR(1),
I_CODIGO INTEGER,
I_LOG VARCHAR(45),
I_CEP VARCHAR(45),
I_BAI VARCHAR(45),
I_CID VARCHAR(45),
I_UF VARCHAR(2))
AS
BEGIN
/* INSERE UM NOVO REGISTRO */
IF (:I_ACAO = ´I´) THEN
BEGIN
INSERT INTO BAIRRO (
BAI_LOGRADOURO,
BAI_CEP,
BAI_BAIRRO,
BAI_CIDADE,
BAI_UF
)
VALUES (
:I_LOG,
:I_CEP,
:I_BAI,
:I_CID,
:I_UF
);
WHEN SQLCODE -625 DO
EXCEPTION ERRO_CAMPOS_OBRIGATORIOS;
WHEN ANY DO
EXCEPTION ERRO_INSERT;
END
/* ALTERA UM REGISTRO */
IF (:I_ACAO = ´A´) THEN
BEGIN
UPDATE BAIRRO SET
BAI_LOGRADOURO = :I_LOG,
BAI_CEP = :I_CEP,
BAI_BAIRRO = :I_BAI,
BAI_CIDADE = :I_CID,
BAI_UF = :I_UF
WHERE BAI_CODIGO = :I_CODIGO;
WHEN SQLCODE -625 DO
EXCEPTION ERRO_CAMPOS_OBRIGATORIOS;
WHEN ANY DO
EXCEPTION ERRO_UPDATE;
END
/* EXCLUI UM REGISTRO */
IF (:I_ACAO = ´E´) THEN
BEGIN
DELETE FROM BAIRRO
WHERE BAI_CODIGO = :I_CODIGO;
WHEN SQLCODE -530 DO
EXCEPTION ERRO_VIOLACAO_FK;
WHEN ANY DO
EXCEPTION ERRO_DELETE;
END
END
27/01/2006
Motta
Grant de execute ?
Grant de Insert ?
Sinonimo ?
Etc ?
O user que roda a app é o mesmo que via via banco direto ?
28/01/2006
Uiliangurjon
dm1.dataset.parambyname(´cod´).value := edit.text
dm1.dataset.execsql();
funciona o problema esta quando tento usar o procedimento que esta no primeiro topico
Clique aqui para fazer login e interagir na Comunidade :)