ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problemas para gravar uma Stored Procedure?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jan 15, 2007 10:35 am    Assunto: Problemas para gravar uma Stored Procedure? Responder com Citação

Olah pessoal eh o sequinte criei uma SP e preciso passar os valores para ela, mais esta gerando o sequinte erro "List index out of bounds(31)"
O problema esta somente quando tento passar por query
Código:
N := ComponentCount;
  for I := 0 to N-1 do
  begin
      if (Components[I] is TEdit) AND ((Components[I] as TEdit).Tag > 0) AND ((Components[I] as TEdit).Text <> '') then
      begin
      with {dm.QSP_Todomes} DM.IBQTODOMES do
      begin
           close;
           SQL.clear;
           //Chama a Stored procedure no IBQuery para gravar
           //sql.add('EXECUTE PROCEDURE SP_TodoMes (:sequencia, :ano,:conta_d, :conta_c, :mes, :valor, :historico, :contap_d, :contap_c, :nomenclatura1, :nomenclatura2, :mesvar)');
           sql.add(' Insert Into todomesconta (ano, conta_d, conta_c, mes, valor, historico, contap_d, contap_c, nomenclatura1, nomenclatura2, mesvar)');
           sql.add(' Values (:ano,:conta_d, :conta_c, :mes, :valor, :historico, :contap_d, :contap_c, :nomenclatura1, :nomenclatura2, :mesvar)');
//{passando dos edits para o paramentro do Stored Procedure
ParamByName('ano').AsString            :=edtAno.text;
ParamByName('conta_D').AsString        :=edtDebito.text;
ParamByName('conta_C').AsString        :=edtCredito.Text;
ParambyName('historico').AsString      :=edtHistorico.Text;
ParamByName('contap_d').AsString       :=et1.text;
ParamByName('contap_c').asString       :=et2.text;
ParamByName('nomenclatura1').AsString  :=Label12.caption;
ParamByName('nomenclatura2').AsString  :=Label13.caption;
ParamByname('mes').Value               := (Components[I] as TEdit).Tag;
Case (Components[I] as TEdit).Tag of
1: ParamByName('Valor').Value:= StrToCurr((Components[I] as TEdit).Text);
2: ParamByName('Valor').Value:= StrToCurr((Components[I] as TEdit).Text);
3: ParamByName('Valor').Value:= StrToCurr((Components[I] as TEdit).Text);
{essa case vai ateh a tag do edit 12} nao postei mais o codigo pq da erro aki no forum           
end;
execSQL;

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree


Editado pela última vez por adriano_servitec em Seg Jan 15, 2007 10:58 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jan 15, 2007 10:37 am    Assunto: Responder com Citação

Continuando pq nao deu para postar tudo num post
Por IBTable nao tem problema
Código:
N := ComponentCount;
  for I := 0 to N-1 do
  begin
      if (Components[I] is TEdit) AND ((Components[I] as TEdit).Tag > 0) AND ((Components[I] as TEdit).Text <> '') then
      begin
      dm.IBTodoMes.Append; {para incluir na Tabela usando um DataSet}
        {passando os dados do edit para o DataSet}
        dm.IBTodoMesano.Value         := edtAno.Text;
        dm.IBTodoMesHistorico.Value   := edtHistorico.Text;
        dm.IBTodoMesConta_D.Value     := edtDebito.Text;
        dm.IBTodoMesConta_C.Value     := edtCredito.Text;
        dm.IBTodoMesContaP_D.Value     := et1.Text;
        dm.IBTodoMesContaP_C.Value     := et2.Text;
        dm.IBTodoMesNOMENCLATURA1.Value     := LABEL12.CAPTION;
        dm.IBTodoMesNOMENCLATURA2.Value     := LABEL13.CAPTION;
        dm.IBTodoMesMes.Value         := (Components[I] as TEdit).Tag;
        Case (Components[I] as TEdit).Tag of
          1: DM.IBTodoMesValor.Value     := StrToCurr((Components[I] as TEdit).Text);
          2: DM.IBTodoMesValor.Value     := StrToCurr((Components[I] as TEdit).Text);
          3: DM.IBTodoMesValor.Value     := StrToCurr((Components[I] as TEdit).Text);
          4: DM.IBTodoMesValor.Value     := StrToCurr((Components[I] as TEdit).Text);
{tambem vai ateh a tag do edit12}
        end;
       dm.IBTodoMes.Post; {para gravar na tabela}
      end;

Tambem nao da erro usando CDS

E eu preciso passar esses dados por uma Stored Procedure

Grato a ajuda de todos
Adriano.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree


Editado pela última vez por adriano_servitec em Seg Jan 15, 2007 10:47 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jan 15, 2007 10:45 am    Assunto: Responder com Citação

Desculpe postar em tanto post assim, mais foi a unica maneira que encontrei para msotrar o meu problema

Nao sei se precisa, mais tambem vou postar a StoredPorc
Código:
CREATE PROCEDURE SP_TODOMES (
    SEQUENCIA INTEGER,
    ANO VARCHAR(4),
    CONTA_D VARCHAR(15),
    CONTA_C VARCHAR(15),
    MES INTEGER,
    VALOR NUMERIC(15,2),
    HISTORICO VARCHAR(100),
    CONTAP_D VARCHAR(15),
    CONTAP_C VARCHAR(15),
    NOMENCLATURA1 VARCHAR(50),
    NOMENCLATURA2 VARCHAR(50),
    MESVAR VARCHAR(2))
AS
begin
if ( not exists(select sequencia from todomesconta where sequencia = :sequencia) )
  then
   Insert Into todomesconta (sequencia, ano, conta_d, conta_c, mes,  valor, historico, contap_d, contap_c, nomenclatura1, nomenclatura2, mesvar)
   Values (:sequencia, :ano, :conta_d, :conta_c, :mes,  :valor, :historico, :contap_d, :contap_c, :nomenclatura1, :nomenclatura2, :mesvar);

   Insert Into debitotmes (sequencia, ano, conta_d, conta_c, mes,  valor, historico, contap_d, contap_c, nomenclatura1, nomenclatura2, mesvar)
   Values (:sequencia, :ano, :conta_d, :conta_c, :mes,  :valor, :historico, :contap_d, :contap_c, :nomenclatura1, :nomenclatura2, :mesvar);

   Insert Into creditomes (sequencia, ano, conta_d, conta_c, mes,  valor, historico, contap_d, contap_c, nomenclatura1, nomenclatura2, mesvar)
   Values (:sequencia, :ano, :conta_d, :conta_c, :mes,  :valor, :historico, :contap_d, :contap_c, :nomenclatura1, :nomenclatura2, :mesvar);

 end

Falando na Stored Procedure, essa que eu mostrei acima ja esta feita o probelma foi quando quis joga-la para um IBQuery de o sequinte erro na hora de ativa-la

Validation error for column, ANO "***null***" at Procedure "SP_TodoMes"

Grato a ajuda de todos
Adriano.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 18, 2007 6:09 pm    Assunto: Responder com Citação

Resolvi mudar de SP para IBTable mesmo jogando os valores em tres tabelas, agora a duvida eh como fazer um update em cascata, para que as outras tabelas fiquem atualizadas tambem?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Qui Jan 18, 2007 6:20 pm    Assunto: Responder com Citação

Você pode usar uma trigger!

Agora com relação ao erro anteriormente citado, deve estar relacionado ao laço (quantidade de componentes) existentes. Se o valor for maior irá aparecer essa mensagem de erro. Por exemplo, na linha

Código:
 Case (Components[I] as TEdit).Tag of

Você força que o componente contido no Array Components seja um TEdit, porém se não for, irá retornar uma mensagem de erro. Para isso,verifique se o componente é mesmo um edit usando o IS:
Código:
if Components[I] is TEdit then...

_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 18, 2007 9:38 pm    Assunto: Responder com Citação

thomazs escreveu:
Você pode usar uma trigger!

Agora com relação ao erro anteriormente citado, deve estar relacionado ao laço (quantidade de componentes) existentes. Se o valor for maior irá aparecer essa mensagem de erro. Por exemplo, na linha

Código:
 Case (Components[I] as TEdit).Tag of

Você força que o componente contido no Array Components seja um TEdit, porém se não for, irá retornar uma mensagem de erro. Para isso,verifique se o componente é mesmo um edit usando o IS:
Código:
if Components[I] is TEdit then...
Olah Thomazs, obrigado amigo, por sempre estar me ajudando, mais eu nao sei como usar uma trigger neste caso, nao entendo praticamente nada de trigger e SP, estou tentando fazer mais praticamente o que eu sei eh zero. Sobre o erro acima resolvi usar as tables mesmo. Queria postar o codigo aki, mais o forum nao suporta o tamanho do codigo final.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jan 22, 2007 5:49 pm    Assunto: Responder com Citação

Nao consigo passar por SP de maneira alguma

olha o codigo
Código:
procedure TForm3.b2Click(Sender: TObject);
var i, n: SmallInt;
begin
  N := ComponentCount;

  for I := 0 to N-1 do
  begin
     if (Components[I] is TEdit) AND ((Components[I] as TEdit).Tag > 0) AND ((Components[I] as TEdit).Tag < 13) and ((Components[I] as TEdit).Text <> '') then
      begin
{comandos de inserção }
if application.messagebox(PChar('Deseja Gravar este Lançamento?'), PChar('Incluir Dados'+Self.Caption),MB_IConquestion +MB_YesNo)=IDYES then
begin
with dm.SPqCorr do
begin
close;
SQL.clear;
sql.add('EXECUTE PROCEDURE SP_CORRENTE (:Matricula, :Associado, :Mespgto, :Mesrefini, :Mesreffim, :valor, :ano)');
    ParamByName('Matricula').Value   :=Edit1.text;
    ParamByName('Associado').value   :=label3.caption;
    ParamByName('Mespgto').value     :=strtodate(maskedit1.text);
    ParamByName('Mesrefini').value   :=strtodate(maskedit2.text);
    ParamByName('Mesreffim').value   :=strtodate(maskedit3.text);

    {SValor deixei como variavel Global - Variavel sValor recebendo o valor que contem no componente edtValorPadrao}
    sValor := edtValorPadrao.Text;
    {transforma a variavel sValor para receber valores com ponto e virgula tipo 1.000,00}
    sValor := stringreplace(sValor, '.', '', [rfReplaceAll]);


Continua o post na parte de baixo por motivo de erro do forum
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree


Editado pela última vez por adriano_servitec em Seg Jan 22, 2007 5:54 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jan 22, 2007 5:51 pm    Assunto: Responder com Citação

2ª parte do codigo
Código:
{Case recebendo a variavel sValor}
    if Components[I] is TEdit then BEGIN
    Case (Components[I] as TEdit).Tag of
          1: ParamByName('valor').Value := StrToCurr( sValor );
          2: ParamByName('valor').Value := StrToCurr( sValor );
          3: ParamByName('valor').Value := StrToCurr( sValor );
          4: ParamByName('valor').Value := StrToCurr( sValor );
          5: ParamByName('valor').Value := StrToCurr( sValor );
          6: ParamByName('valor').Value := StrToCurr( sValor );
          7: ParamByName('valor').Value := StrToCurr( sValor );
          8: ParamByName('valor').Value := StrToCurr( sValor );
          9: ParamByName('valor').Value := StrToCurr( sValor );
         10: ParamByName('valor').Value := StrToCurr( sValor );
         11: ParamByName('valor').Value := StrToCurr( sValor );
         12: ParamByName('valor').Value := StrToCurr( sValor );
    end; //final do case
    END; //FINAL DO IF
    ParamByName('ano').value   :=edtano.text;
    try
      ExecSql;
      dm.ibtCorr.CommitRetaining;
      ...
      ...

Nao passa para a Stored Procedure.
A Stored Procedure fiz assim
Código:
CREATE PROCEDURE SP_CORRENTE (
    SEQUENCIA INTEGER,
    MATRICULA VARCHAR(6),
    ASSOCIADO VARCHAR(50),
    MESPGTO DATE,
    MESREFINI DATE,
    MESREFFIM DATE,
    VALOR NUMERIC(15,2),
    ANO VARCHAR(4))
AS
begin
if ( not exists(select sequencia from CORRENTE where sequencia = :sequencia) )
  then
   Insert Into CORRENTE (matricula, associado, mespgto, mesrefini, mesreffim, valor, ano)
   Values (:matricula, :associado, :mespgto, :mesrefini, :mesreffim, :valor, :ano);
 end

Nao sei o que faço para conseguir jogar estes parametros para SP.

Obrigado pela ajuda
Adriano.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Lane1902
Experiente
Experiente


Registrado: Quinta-Feira, 15 de Janeiro de 2004
Mensagens: 447

MensagemEnviada: Sex Jan 26, 2007 5:07 am    Assunto: Ola Amigo. Responder com Citação

Vamos ver se posso ter ajudar um pouco a solucionar o problema de envio de campos para a StoredProcedure, voce esta usando campos edit nao ?, ok entao so uma dica, pra utilizar esta procedure nomeie os campos edits com o mesmo nome da base de dados, exemplo :
Campo na base de dados = COD_CLIENTE.
Nome do Edit na tela = COD_CLIENTE.

ok.

Segue a procedure:

Declarando a procedure:

{ Trazer os Dados da Tela p/ o Banco de Dados. }
procedure PTelaBC( Objeto: TIBStoredProc; Tipo: integer );


Criando a procedure:

procedure PTelaBC( Objeto: TIBStoredProc; Tipo: integer );
(*
Nome : PTelaBC
Objetivo : Carregar os Dados da Tela p/ o Banco de Dados.
Data : 19/01/2005.
Autor : Ricardo Scarpim.
Parâmetros:
Entrada :
Objeto = TStoredProcedure.
Tipo = Incluindo / Alterando.

OBS :
No Formulário, os Campos Devem Receber o Mesmo Nome que Consta na
Tabela, a Stored Procedure Também deverá Conter o Mesmo Nome do Campo
que Constar na Tabela.
*)

Var
i : integer;
Source : TParam;
sForm : String;
Form : TForm;
begin

With DMClientes, Objeto Do
begin

{ Pega o Nome do Form Ativo. }
Form := Screen.ActiveForm;

{ Inicia a Busca Pelo Nome dos Componentes no Form. }
For i := 0 To Form.ComponentCount - 1 Do
begin

{ Processar as Mensagens. }
Application.ProcessMessages;

{ Se Estiver no Intervalo de Componentes Exigido: }
IF ( Form.Components[i].ClassName = 'TMaskEdit' ) OR
( Form.Components[i].ClassName = 'TEdit' ) OR
( Form.Components[i].ClassName = 'TRichEdit' ) OR
( Form.Components[i].ClassName = 'TMemo' ) OR
( Form.Components[i].ClassName = 'TCheckBox' ) OR
( Form.Components[i].ClassName = 'TComboBox' ) OR
( Form.Components[i].ClassName = 'TDateEdit' ) OR
( Form.Components[i].ClassName = 'TRadioGroup' ) OR
( Form.Components[i].ClassName = 'TCurrencyEdit' ) OR
( Form.Components[i].ClassName = 'TFilenameEdit' ) OR
( Form.Components[i].ClassName = 'TDirectoryEdit' ) OR
( Form.Components[i].ClassName = 'TRxSpinEdit' )then
begin

{ Localizar o Parametro na Stored Procedure. }
Source := Objeto.Params.FindParam( Form.Components[i].Name );

{ Se Localizar o Objeto. }
IF Source <> NIL then
begin

{ Verifica se é Edit. }
IF Form.Components[i] is TEdit then
begin
IF Source.DataType = ftString then
Source.Value := TEdit(Form.Components[i]).Text;

{ Se for do Tipo Data. }
IF Source.DataType = ftDateTime then
begin
IF TEdit( Form.Components[i] ).Text <> '' then
Source.Value := StrToDateTime( TEdit( Form.Components[i] ).Text );
end;

{ Se for do Tipo Flutuante. }
IF Source.DataType in [ftFloat, ftInteger] then
begin
IF TEdit(Form.Components[i]).Text <> '' then
Source.Value := StrToFloatDef(TEdit(Form.Components[i]).Text, 0 );
end;
end;

{ Verifica se é MaskEdit. }
IF Form.Components[i] is TMaskEdit then
begin

{ Tipo de Dado = string. }
IF Source.DataType = ftString then
begin

IF( Source.Name = 'CIF' ) then
Source.Value := FFormate( TMaskEdit( Form.Components [i] ).Text, 0 )
else
Source.Value := TMaskEdit( Form.Components[i] ).Text;
end;

{ Tipo de Dado = Data e Hora. }
IF Source.DataType = ftDate then
begin

IF( ( TMaskEdit(Form.Components[i]).Text <> '' ) AND ( TMaskEdit(Form.Components[i]).Text <> ' / / ' ) ) then
Source.Value := StrToDate( TMaskEdit(Form.Components[i]).Text )
else
Source.Value := NULL;
end;

{ Tipo de Dado = Float e Integer. }
IF Source.DataType in [ftFloat, ftInteger] then
begin
IF TMaskEdit(Form.Components[i]).Text <> '' then
Source.Value := StrToFloatDef( TMaskEdit(Form.Components[i]).Text, 0 );
end;
end;

{ Verifica se é RichEdit. }
IF Form.Components[i] is TRichEdit then
Source.Value := TRichEdit(Form.Components[i]).Text;

{ Verifica se é Memo. }
IF Form.Components[i] is TMemo then
Source.Value := TMemo(Form.Components[i]).Lines.Text;

{ Verifica se é CheckBox. }
IF Form.Components[i] is TCheckBox then
IF TCheckBox( Form.Components[i] ).Checked then
Source.Value := 1
else
Source.Value := 0;

{ Verifica se é ComboBox. }
IF Form.Components[i] is TComboBox then
Source.Value := TComboBox( Form.Components[i]).Text;

{ Verifica se é TDateEdit. }
IF Form.Components[i] is TDateEdit then
IF( ( TDateEdit(Form.Components[i]).Text <> '' ) AND ( TDateEdit(Form.Components[i]).Text <> ' / / ' ) ) then
Source.Value := TDateEdit( Form.Components[i]).Text
else
Source.Value := NULL;

{ Verifica se é RadioGroup. }
IF Form.Components[i] is TRadioGroup then
Source.Value := TRadioGroup( Form.Components[i]).ItemIndex;

{ Verificar se é TCurrencyEdit }
IF Form.Components[i] is TCurrencyEdit then
begin

{ Tipo de Dado = Float e Integer. }
IF Source.DataType in [ftFloat, ftInteger] then
begin
IF TCurrencyEdit(Form.Components[i]).Text <> '' then
Source.Value := StrToFloatDef( TCurrencyEdit( Form.Components[i] ).Text, 0 );
end;
end;

{ Verificar se é TFileNameEdit. }
IF Form.Components[i] is TFilenameEdit then
Source.Value := TFilenameEdit( Form.Components[i] ).Text;

{ Verificar se é TDirectoryEdit. }
IF Form.Components[i] is TDirectoryEdit then
Source.Value := TDirectoryEdit( Form.Components[i] ).Text;

{ Verificar se é TRxSpinEdit. }
IF Form.Components[i] is TRxSpinEdit then
Source.Value := TRxSpinEdit( Form.Components [i] ).Text;
end;
end;
end;

{ Passagem da Operacao que a SP irá Executar: 1 - Incluir 2 - Alterar 3 - Excluir. }
Source := Params.FindParam('Tipo');

IF Source <> NIL then
Source.Value := Tipo;

{ Obter nome do formulário ativo. }
sForm := Screen.ActiveForm.Name;

{ Iniciando Transação. }
Try
begin

{ Executa Procedure. }
ExecProc;

{ Comitar a Transação. }
DMConexao.Transaction.CommitRetaining;
end;
{ Se o Banco Retornar Algum Erro... . }
except on E: EDataBaseError do
begin

{ Mostrar a Mensagem. }
MessageDlg( 'Problemas no Envio dos Dados ao Servidor!' + #13 + #10 + #13 + #10 +
'Formulário: ' + sForm + #13 + #10 +
'Procedure: ' + Objeto.Name + #13 + #10 +
'Mensagem: ' + E.Message + #13 + #10 + #13 + #10 +
'Contate o Suporte Informando os Dados Acima!', mtError, [mbOK], 0);
end;
end;
end;
end;


Chame a procedure assim :

{ Procedimento para Levar os Dados da Tela para o Banco de Dados.}
PTelaBC( SpClientes, Operacao );


Espero ter ajudado voce, caso voce queira passar parametros diretamente sem utilizar esta procedure, basta colocar o nome do edit diferente do nome na base de dados e passar como parametro antes de chamar a procedure ex:

Params [ 9].Value := ednome.text;

PTelaBC( SpClientes, Operacao );

Ok um abraco, qualquer coisa manda ver.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Jan 26, 2007 10:58 am    Assunto: Responder com Citação

Obrigado por responder meu post Lane1902, vou dar uma olhada com calma a tua resposta sobre o codigo que tu postou, pode ser que use futuramente, pois essa etapa resolvi usar o ibTable e passar por array, pq. tenho prazo de entrega e a SP estava me atrazando.

Respondendo a tua pergunta estou sim passando os parametros por edits. mais acho que o erro eh pq envolve um laço. Bom depois que eu testar o codigo posto como ficou amigo.

Obrigado.
Adriano.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB