no delphi como eu faço para passar os parametos
tenho uma procdure no meu bd com este codigo
CREATE PROCEDURE MANUTENCAO_PESQ_DE_EMPRESA (
TIPO VARCHAR(1),
ORDEM VARCHAR(20),
COD INTEGER)
RETURNS (
R_CODIGO INTEGER,
R_RAZAO VARCHAR(40),
R_NF VARCHAR(40),
R_TEL VARCHAR(18))
IF (:tipo = ´P´) THEN
BEGIN
IF (:ORDEM = ´CODIGO´) THEN
BEGIN
for SELECT EMPRESAS.codigo,
EMPRESAS.razao_social,
EMPRESAS.nome_fantasia,
EMPRESAS.telefone1
FROM EMPRESAS
WHERE EMPRESAS.codigo like :cod || ´¬´
INTO :r_codigo,
:r_razao,
:r_nf,
:r_tel
do
suspend;
END
END
gostaria de saber como faço para passar os valors para os parametros via o delphi (uso os componentes da paleta dbexpress)
Obrigado!!!!
CREATE PROCEDURE MANUTENCAO_PESQ_DE_EMPRESA (
TIPO VARCHAR(1),
ORDEM VARCHAR(20),
COD INTEGER)
RETURNS (
R_CODIGO INTEGER,
R_RAZAO VARCHAR(40),
R_NF VARCHAR(40),
R_TEL VARCHAR(18))
IF (:tipo = ´P´) THEN
BEGIN
IF (:ORDEM = ´CODIGO´) THEN
BEGIN
for SELECT EMPRESAS.codigo,
EMPRESAS.razao_social,
EMPRESAS.nome_fantasia,
EMPRESAS.telefone1
FROM EMPRESAS
WHERE EMPRESAS.codigo like :cod || ´¬´
INTO :r_codigo,
:r_razao,
:r_nf,
:r_tel
do
suspend;
END
END
gostaria de saber como faço para passar os valors para os parametros via o delphi (uso os componentes da paleta dbexpress)
Obrigado!!!!
Uiliangurjon
Curtidas 0
Respostas
Fsflorencio
18/03/2005
Numa query coloque isto: SELECT * FROM MANUTENCAO_PESQ_DE_EMPRESA ( ´T´, ´ORDEM´, 1)
GOSTEI 0
Afarias
18/03/2005
algo como:
T+
with SQLQuery1 do begin SQL.Text := ´SELECT * FROM MANUTENCAO_PESQ_DE_EMPRESA ( :TIPO, :ORDEM, :COD)´; ParamByName(´TIPO´).AsString := ´Teste1´; ParamByName(ORDEM´).AsString := ´Teste2´; ParamByName(´COD´).AsInteger := 3; end;
T+
GOSTEI 0
Uiliangurjon
18/03/2005
Olha o que eu fiz, não da certo retorna sempre um erro
DataModule1.SQLQuery1.Close;
DataModule1.SQLQuery1.SQL.Clear;
DataModule1.SQLQuery1.SQL.Add (´select * from MANUTENCAO_PESQ_DE_EMPRESA(:I_RAZAO, :I_TIPO:I_NOME_F, :I_ENDE, :I_BAIRRO, :I_CIDADE, :I_ESTADO, :I_CEP, :I_TEL1, :I_TEL2, :I_TEL3, :I_CNPJ, :I_INSC, :I_MAIL, :I_HOME, :I_PATH, )´);
DataModule1.SQLQuery1.ParamByName(´I_RAZAO´).AsString := Edit2.Text;
DataModule1.SQLQuery1.ParamByName(´I_NOME_F´).AsString := Edit3.Text;
DataModule1.SQLQuery1.ParamByName(´I_ENDE´).AsString := Edit4.Text;
DataModule1.SQLQuery1.ParamByName(´I_BAIRRO´).AsString := Edit5.Text;
DataModule1.SQLQuery1.ParamByName(´I_CIDADE´).AsString := Edit6.Text;
DataModule1.SQLQuery1.ParamByName(´I_ESTADO´).AsString := ComboBox1.Text;
DataModule1.SQLQuery1.ParamByName(´I_CEP´).AsString := MaskEdit1.text;
DataModule1.SQLQuery1.ParamByName(´I_TEL1´).AsString := MaskEdit2.Text;
DataModule1.SQLQuery1.ParamByName(´I_TEL2´).AsString := MaskEdit3.text;
DataModule1.SQLQuery1.ParamByName(´I_TEL3´).AsString := MaskEdit4.Text;
DataModule1.SQLQuery1.ParamByName(´I_CNPJ´).AsString := MaskEdit5.Text;
DataModule1.SQLQuery1.ParamByName(´I_INSC´).AsString := Edit7.Text;
DataModule1.SQLQuery1.ParamByName(´I_MAIL´).AsString := Edit8.Text;
DataModule1.SQLQuery1.ParamByName(´I_HOME´).AsString := Edit9.Text;
DataModule1.SQLQuery1.ParamByName(´I_PATH´).AsString := Edit10.Text;
if Edit11.Text = ´I´ then
begin
DataModule1.SQLQuery1.ParamByName(´I_TIPO´).AsString := ´I´;
end;
DataModule1.SQLQuery1.Open;
DataModule1.SQLQuery1.Close;
DataModule1.SQLQuery1.SQL.Clear;
DataModule1.SQLQuery1.SQL.Add (´select * from MANUTENCAO_PESQ_DE_EMPRESA(:I_RAZAO, :I_TIPO:I_NOME_F, :I_ENDE, :I_BAIRRO, :I_CIDADE, :I_ESTADO, :I_CEP, :I_TEL1, :I_TEL2, :I_TEL3, :I_CNPJ, :I_INSC, :I_MAIL, :I_HOME, :I_PATH, )´);
DataModule1.SQLQuery1.ParamByName(´I_RAZAO´).AsString := Edit2.Text;
DataModule1.SQLQuery1.ParamByName(´I_NOME_F´).AsString := Edit3.Text;
DataModule1.SQLQuery1.ParamByName(´I_ENDE´).AsString := Edit4.Text;
DataModule1.SQLQuery1.ParamByName(´I_BAIRRO´).AsString := Edit5.Text;
DataModule1.SQLQuery1.ParamByName(´I_CIDADE´).AsString := Edit6.Text;
DataModule1.SQLQuery1.ParamByName(´I_ESTADO´).AsString := ComboBox1.Text;
DataModule1.SQLQuery1.ParamByName(´I_CEP´).AsString := MaskEdit1.text;
DataModule1.SQLQuery1.ParamByName(´I_TEL1´).AsString := MaskEdit2.Text;
DataModule1.SQLQuery1.ParamByName(´I_TEL2´).AsString := MaskEdit3.text;
DataModule1.SQLQuery1.ParamByName(´I_TEL3´).AsString := MaskEdit4.Text;
DataModule1.SQLQuery1.ParamByName(´I_CNPJ´).AsString := MaskEdit5.Text;
DataModule1.SQLQuery1.ParamByName(´I_INSC´).AsString := Edit7.Text;
DataModule1.SQLQuery1.ParamByName(´I_MAIL´).AsString := Edit8.Text;
DataModule1.SQLQuery1.ParamByName(´I_HOME´).AsString := Edit9.Text;
DataModule1.SQLQuery1.ParamByName(´I_PATH´).AsString := Edit10.Text;
if Edit11.Text = ´I´ then
begin
DataModule1.SQLQuery1.ParamByName(´I_TIPO´).AsString := ´I´;
end;
DataModule1.SQLQuery1.Open;
GOSTEI 0
Uiliangurjon
18/03/2005
e se essa procedure não retornar valor for apenas para inclusão de registros????
o que eu faço????
o que eu faço????
GOSTEI 0
Emerson Nascimento
18/03/2005
o erro deve ocorrer porque sua SP tem apenas 3 parâmetros de entrada e você está passando 16 parâmetros.
GOSTEI 0