none
SP de Insert Com Problemas - Podem me dar uma força??? RRS feed

  • Pergunta

  • Obrigado pela atenção...

    Bom, estou com um problema no insert, vou postar o erro que está dando, depois minha stored procedure, e por último os dados que estou enviando para stored procedure através do asp...

     

    Code Snippet
    Server: Msg 170, Level 15, State 1, Line 1
    Line 1: Incorrect syntax near ','.

     

     

    Code Snippet

    ALTER   procedure dbo.sp_IncluirFornecedorCPF     

    @for_cgccpf  varchar(15)  
    ,@for_nome  varchar(50)
    ,@for_rua  varchar(50)
    ,@for_numero  varchar(5)
    ,@for_complemento varchar(15)
    ,@for_bairro  varchar(30)
    ,@for_cidade  varchar(30)
    ,@for_cep  varchar(8)
    ,@for_uf  varchar(2)
    ,@for_fone1  varchar(12)
    ,@for_fone2  varchar(12)
    ,@for_ctacorrente varchar(10)
    ,@for_tipopessoa varchar(2) = 'F'
    ,@for_observacao varchar(200)
    ,@for_email  varchar(50) 
    ,@for_cod_banco  numeric(10)
    ,@for_inscr_inss varchar(20)
    ,@for_pis_pasep  varchar(20)
    ,@for_dv_ctacorrente varchar(2)
    ,@for_CBO  varchar(6)
    ,@for_dta_nasc  datetime = '17530101'
    ,@for_ag_cod  varchar(10)
     
    as     
         
    set nocount on     

    If not exists (select * from fornecedor where for_cgccpf=@for_cgccpf)     
    BEGIN
     insert into fornecedor(
     for_cgccpf,for_nome,for_rua,for_numero
     ,for_complemento,for_bairro,for_cidade,for_cep
     ,for_uf,for_fone1,for_fone2,for_ctacorrente
     ,for_tipopessoa,for_observacao, for_email, for_cod_banco
     ,for_inscr_inss,for_pis_pasep,for_dv_ctacorrente
     ,for_CBO,for_dta_nasc,for_ag_cod)     
     values(
     @for_cgccpf,@for_nome,@for_rua,@for_numero
     ,@for_complemento,@for_bairro,@for_cidade,@for_cep
     ,@for_uf,@for_fone1,@for_fone2,@for_ctacorrente
     ,@for_tipopessoa,@for_observacao,@for_email,@for_cod_banco
     ,@for_inscr_inss,@for_pis_pasep,@for_dv_ctacorrente
     ,@for_CBO,@for_dta_nasc,@for_ag_cod)     
    End     

     

     

     

    Code Snippet
    exec sp_IncluirFornecedorCPF '51222981220' , 'AUGUSTO TESTE' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '', '' , , '' , '', '', 0 , '' , ''

     

     

     

    quinta-feira, 20 de setembro de 2007 20:49

Respostas

  • Bom dia Augusto, experimenta isso:

     

    ALTER      procedure dbo.STP_INSERIR_FORNECEDOR
     
    @for_cgccpf      varchar(15) = null     
    ,@for_nome       varchar(50) = null     
    ,@for_nome_fantasia   varchar(50) = null     
    ,@for_Dta_Nasc   varchar(10) = null     
    ,@for_CBO     varchar(6) = null
    ,@for_inscr_estadual   varchar(20) = null     
    ,@for_inscr_municipal   varchar(20) = null     
    ,@for_inscr_inss   varchar(20) = null     
    ,@for_pis_pasep   varchar(20) = null     
    ,@for_rua     varchar(50) = null     
    ,@for_numero     varchar(5) = null     
    ,@for_complemento   varchar(15) = null     
    ,@for_cep     varchar(8) = null     
    ,@for_bairro     varchar(30) = null     
    ,@for_cidade     varchar(30) = null     
    ,@for_uf     varchar(2) = null     
    ,@for_fone1     varchar(12) = null     
    ,@for_fone2     varchar(12)  = null     
    ,@for_email     varchar(50) = null     
    ,@ban_cod     numeric = null     
    ,@age_cod     int  = null     
    ,@for_ctacorrente   varchar(10) = null
    ,@for_tipopessoa   varchar(1) = null       
    ,@for_dv_ctacorrente   varchar(2) = null     
    ,@for_restricao    int  = null     
    ,@for_observacao   varchar(200) = null 

    AS       
         

    Declare @Ffor_DTA_Nasc Datetime

    SET @Ffor_DTA_Nasc = CONVERT(datetime, @for_Dta_Nasc,103)

    IF NOT EXISTS(SELECT * from fornecedor where for_cgccpf = @for_cgccpf)     
        BEGIN
        BEGIN TRANSACTION     
         INSERT INTO fornecedor (
     for_cgccpf, for_nome, for_nome_fantasia,
     for_Dta_Nasc, for_CBO, for_inscr_estadual,
     for_inscr_municipal, for_inscr_inss, for_pis_pasep,
     for_rua, for_numero, for_complemento, for_cep,
     for_bairro, for_cidade, for_uf,
     for_fone1, for_fone2, for_email,
     ban_cod, age_cod, for_ctacorrente,
     for_tipopessoa, for_dv_ctacorrente, for_restricao,
     for_observacao)      
         VALUES (
     @for_cgccpf, @for_nome, @for_nome_fantasia,
     @Ffor_Dta_Nasc, @for_CBO, @for_inscr_estadual,
     @for_inscr_municipal, @for_inscr_inss, @for_pis_pasep,
     @for_rua, @for_numero, @for_complemento, @for_cep,
     @for_bairro, @for_cidade, @for_uf,
     @for_fone1, @for_fone2, @for_email,
     @ban_cod, @age_cod, @for_ctacorrente,
     @for_tipopessoa, @for_dv_ctacorrente, @for_restricao,
     @for_observacao)      
         IF @@ERROR <> 0      
              ROLLBACK TRANSACTION     
          ELSE     
              COMMIT TRANSACTION     
         END
    ELSE
        BEGIN
        BEGIN TRANSACTION     
         UPDATE fornecedor
     SET for_cgccpf = @for_cgccpf, for_nome = @for_nome, for_nome_fantasia = @for_nome_fantasia,
     for_Dta_Nasc = @Ffor_Dta_Nasc, for_CBO = @for_CBO, for_inscr_estadual = @for_inscr_estadual,
     for_inscr_municipal = @for_inscr_municipal, for_inscr_inss = @for_inscr_inss, for_pis_pasep = @for_pis_pasep,
     for_rua = @for_rua, for_numero = @for_numero, for_complemento = @for_complemento, for_cep = @for_cep,
     for_bairro = @for_bairro, for_cidade = @for_cidade, for_uf = @for_uf,
     for_fone1 = @for_fone1, for_fone2 = @for_fone2, for_email = @for_email,
     ban_cod = @ban_cod, age_cod = @age_cod, for_ctacorrente = @for_ctacorrente,
     for_tipopessoa = @for_tipopessoa, for_dv_ctacorrente = @for_dv_ctacorrente, for_restricao = @for_restricao,
     for_observacao = @for_observacao
          WHERE (for_cgccpf = @for_cgccpf)     
          IF @@ERROR <> 0      
              ROLLBACK TRANSACTION     
          ELSE     
              COMMIT TRANSACTION     
          END

     

     

     

    Espero ter ajudado

    terça-feira, 25 de setembro de 2007 14:50

Todas as Respostas

  •  

    Boa tarde, seu problema está aqui:

     

    exec sp_IncluirFornecedorCPF '51222981220' , 'AUGUSTO TESTE' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '', '' ,????? , '' , '', '', 0 , '' , ''

     

     

     

     

     

    Espero ter ajudado

    quinta-feira, 20 de setembro de 2007 21:07
  • Olá Augusto!!

     

     

    Passe NULL onde não terá parâmetro. Veja que você passou ,, passei ,NULL,  exemplo

     

    Code Snippet
    exec
    sp_IncluirFornecedorCPF '51222981220' , 'AUGUSTO TESTE' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '' , '', '' , NULL , '' , '', '', 0 , '' , ''

     

     

     

     

    Abraço
    quinta-feira, 20 de setembro de 2007 21:07
  • Augusto,

     

    Concordo com o Alexandre, no valor de deixar em branco um espaço especifico fazendo referência a um campo, utilize o Null como valor.

    sexta-feira, 21 de setembro de 2007 12:24
  • Olá Alexandre, Júnior

     

    Obrigado pela resposta, realmente não havia atentado para isso... Bom, fiz as modificações, agora etsou com um problema no campo data, na tabela está definido como smalldatetime, e estou passando os parâmetros abaixo que está dando o seguinte erro:

     

    Obs.: Como faço para converter o campo data para não acontecer este tipo de problema? Grato...

     

    ERRO:

    Code Snippet
    Server: Msg 8114, Level 16, State 4, Procedure sp_IncluirFornecedorCPF, Line 0
    Error converting data type varchar to datetime.

     

     

    PARÂMETROS

    exec sp_IncluirFornecedorCPF '51222981220' , 'AUGUSTO TESTE' , 'TESTE' , '123' , 'TESTE' , 'MARCO' , 'BELEM' , '22101980' , 'PA' , '91 32762299' , '91 91128955' , '14569' , 'F' , 'TESTE', 'ACFELIPE@MASN.COM.BR' , 123 , '123' , '1234', '9' , '22101980' , '12' , '00201'

     

    SP MODIFICADA

     

    Code Snippet

    ALTER   procedure dbo.sp_IncluirFornecedorCPF     

    @for_cgccpf  varchar(15)  
    ,@for_nome  varchar(50)
    ,@for_rua  varchar(50)
    ,@for_numero  varchar(5)
    ,@for_complemento varchar(15)
    ,@for_bairro  varchar(30)
    ,@for_cidade  varchar(30)
    ,@for_cep  varchar(8)
    ,@for_uf  varchar(2)
    ,@for_fone1  varchar(12)
    ,@for_fone2  varchar(12)
    ,@for_ctacorrente varchar(10)
    ,@for_tipopessoa varchar(2) = 'F'
    ,@for_observacao varchar(200)
    ,@for_email  varchar(50) 
    ,@for_cod_banco  numeric(10)
    ,@for_inscr_inss varchar(20)
    ,@for_pis_pasep  varchar(20)
    ,@for_dv_ctacorrente varchar(2)
    ,@for_CBO  varchar(6)
    ,@for_dta_nasc  smalldatetime = '17530101'
    ,@for_ag_cod  varchar(10)

    AS  
         
    set nocount on     

    If not exists (select * from fornecedor where for_cgccpf=@for_cgccpf)     
    BEGIN
     insert into fornecedor(
     for_cgccpf,for_nome,for_rua,for_numero
     ,for_complemento,for_bairro,for_cidade,for_cep
     ,for_uf,for_fone1,for_fone2,for_ctacorrente
     ,for_tipopessoa,for_observacao, for_email, for_cod_banco
     ,for_inscr_inss,for_pis_pasep,for_dv_ctacorrente
     ,for_dta_nasc,for_ag_cod,for_CBO)     
      values(
     @for_cgccpf,@for_nome,@for_rua,@for_numero
     ,@for_complemento,@for_bairro,@for_cidade,@for_cep
     ,@for_uf,@for_fone1,@for_fone2,@for_ctacorrente
     ,@for_tipopessoa,@for_observacao,@for_email,@for_cod_banco
     ,@for_inscr_inss,@for_pis_pasep,@for_dv_ctacorrente
     ,@for_dta_nasc,@for_ag_cod,@for_CBO)     
    End     

     

     

    sexta-feira, 21 de setembro de 2007 13:25
  • Augusto,

     

    Você deseja converter o valor armazenado em um campo datetime para varchar ou char?

     

    Veja se este exemplo poderá ajudar, utilizando a função convert.

     

    Code Snippet

    Convert(VarChar(10),SeuCampoData,103)

     

    ou

     

    Convert(Char(10),SeuCampoData, 103)

     

    ou

     

    Convert(Char(10),SeuCampoData)

     

     

     

    sexta-feira, 21 de setembro de 2007 14:06
  • Olá Júnior, Alexandre e Anderson

     

    A bronca como já deu para ver é no momento do da execução da sql de inserrção de dados. Agora vamos por parte para que possa repassar corretamente minhas dificuldades. Fiz algumas correções no código afim de eliminar o problema mas não deu certo...

     

    1 - Esse é o erro que está dando agora:

     

    Code Snippet
    Server: Msg 8114, Level 16, State 4, Procedure sp_IncluirFornecedorCPF, Line 0
    Error converting data type varchar to smalldatetime.

     

     

    2 - Essa é SQL que passo para chamar SP através do ASP:

     

    Code Snippet

    sql = " SET DATEFORMAT DMY "
    sql = sql & "exec sp_IncluirFornecedorCPF '" & var_cpf & "' , '" & var_nome & "' , '"  & var_logradouro & "' , '" & var_num & "' , '" & var_complemento & "' , '" & var_bairro & "' , '" & var_cidade & "' , '" & var_cep & "' , '" & var_uf & "' , '" & var_tel & "' , '" & var_fax &"' , '" & var_cta & "' , '" & var_pessoa & "' , '" & var_obs & "', '" & var_mail & "' , " & var_ban & " , '" & var_inscinss & "' , '" & var_pispasep & "', '" & var_digconta & "' , '" & var_dtanasc & "' , '" & var_age & "' , '" & var_cbo & "'"

     

    SET DATEFORMAT DMY exec sp_IncluirFornecedorCPF '51222981220' , 'AUGUSTO CESAR' , 'dssadas' , '1231' , 'adsasd' , 'marco' , 'belem' , '66610160' , 'PA' , '91 32762299' , '91 32762299' , '1313' , 'F' , 'TESTE', 'acfelipe@gmail.com' , 124 , '1231245' , '211', '9' , '22/10/1980' , '1465' , '00103'

     

     

     

    3 - Essa é a minha sp no sql server

     

    Code Snippet

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

     

    ALTER   procedure dbo.sp_IncluirFornecedorCPF     

    @for_cgccpf  varchar(15)  
    ,@for_nome  varchar(50)
    ,@for_rua  varchar(50)
    ,@for_numero  varchar(5)
    ,@for_complemento varchar(15)
    ,@for_bairro  varchar(30)
    ,@for_cidade  varchar(30)
    ,@for_cep  varchar(8)
    ,@for_uf  varchar(2)
    ,@for_fone1  varchar(12)
    ,@for_fone2  varchar(12)
    ,@for_ctacorrente varchar(10)
    ,@for_tipopessoa varchar(2) = 'F'
    ,@for_observacao varchar(200)
    ,@for_email  varchar(50) 
    ,@for_cod_banco  numeric(10)
    ,@for_inscr_inss varchar(20)
    ,@for_pis_pasep  varchar(20)
    ,@for_dv_ctacorrente varchar(2)
    ,@for_CBO  varchar(6)
    ,@for_dta_nasc  smalldatetime = '1900-01-01 00:00:00'
    ,@for_ag_cod  varchar(10)

    AS  
         
    set nocount on     

    If not exists (select * from fornecedor where for_cgccpf=@for_cgccpf)     
    BEGIN
     insert into fornecedor(
     for_cgccpf,for_nome,for_rua,for_numero
     ,for_complemento,for_bairro,for_cidade,for_cep
     ,for_uf,for_fone1,for_fone2,for_ctacorrente
     ,for_tipopessoa,for_observacao, for_email, for_cod_banco
     ,for_inscr_inss,for_pis_pasep,for_dv_ctacorrente
     ,for_dta_nasc,for_ag_cod,for_CBO)     
      values(
     @for_cgccpf,@for_nome,@for_rua,@for_numero
     ,@for_complemento,@for_bairro,@for_cidade,@for_cep
     ,@for_uf,@for_fone1,@for_fone2,@for_ctacorrente
     ,@for_tipopessoa,@for_observacao,@for_email,@for_cod_banco
     ,@for_inscr_inss,@for_pis_pasep,@for_dv_ctacorrente
     ,@for_dta_nasc,@for_ag_cod,@for_CBO)     
    End     

     

    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

     

     

    4 - As variáveis que capturo da página ASP

     

    Code Snippet

    var_cpf = Trim(Request.Form("cpf"))   
    var_nome = ucase(Request.Form("nome"))    
    var_dtanasc = Trim(Request.Form("dtanascimento")) 
    var_cbo = Trim(Request.Form("cbo"))     
    var_inscinss = Trim(Request.Form("inscinss"))  
    var_pispasep = Trim(Request.Form("pispasep"))  
    var_logradouro = Trim(Request.Form("logradouro")) 
    var_complemento = Trim(Request.Form("complemento")) 
    var_num = Trim(Request.Form("numendereco"))   
    var_cep = Trim(Request.Form("cep"))  
    var_bairro = Trim(Request.Form("bairro"))   
    var_cidade = Trim(Request.Form("cidade"))   
    var_uf = Trim(Request.Form("estado"))    
    var_tel = Trim(Request.Form("telefone"))    
    var_fax = Trim(Request.Form("fax"))     
    var_ban = Trim(Request.Form("banco"))    
    var_age = Trim(Request.Form("agencia"))    
    var_cta = Trim(Request.Form("conta"))    
    var_obs = Trim(Request.Form("observacao"))   
    var_digconta = Trim(Request.Form("digconta"))  
    var_mail = Trim(Request.Form("email"))
    var_pessoa = Trim(Request.Form("tipodepessoa"))

     

     

    Bom, meus amigos é isso!

    Pela msg do erro o problema está na data de nascimento, né? É problema de conversão?

    Caso vocês tenham alguma idéia, eu agradeço!!!

     

    Um abraço,

     

    Augusto


     

     

    sexta-feira, 21 de setembro de 2007 14:47
  • Oi Augusto,

     

    Faz a adaptação da data para este formato: 'YYYY-MM-DD'

    Exemplo: '1980-01-01'

     

     

    Abraço

    sexta-feira, 21 de setembro de 2007 16:06
  • Augusto,

     

    Outra alternativa dentro da stored procedure seria utilizar o Set DateFormat YMD, antes de realizar o Insert.

    sexta-feira, 21 de setembro de 2007 17:03
  • Olá Gente,

     

    Bom, tentei quase tudo o que relataram e nada... Porém uma luz apareceu no fim do túnel, quando testei no formato 'yyyy-mm-dd' gravou... Minha dúvida é:

     

    Como faço (código) para pegar a variável @for_dta_nasc e converter para o padrão americano, lembrando sempre que ela está vindo do ASP pelo padrão brasileiro???

     

    Li algumas coisas por aqui no fórum, mas ainda não peguei bem...

     

    Alexandre, essa adaptação que você sugeriu, funcionou... mas eu estava alterando na unha como no exemplo abaixo:

     

    Code Snippet

    exec STP_INSERIR_FORNECEDOR '5122298120','ASDASDAS', null,'1980/10/22','00203', null, null,'','','','','','','','','','','','',123,,'','F','', null, ''

     

     

    Como faço isso via código no sql server? Alguns artigos falam que devo declarar uma variável alternativa, trabalhar com ela, e depois igualar a variável repassada no inicio do cabeçalho do código (SP)... Bom, como vocês podem observer tentei fazer algo do tipo na área comentada logo após a instrução AS, mas não conseui...

    Vocês me auxiliar nisso?

     

    Grato a todos

     

    Code Snippet

    ALTER      procedure dbo.STP_INSERIR_FORNECEDOR
     
    @for_cgccpf      varchar(15) = null     
    ,@for_nome       varchar(50) = null     
    ,@for_nome_fantasia   varchar(50) = null     
    ,@for_Dta_Nasc   datetime = null     
    ,@for_CBO     varchar(6) = null
    ,@for_inscr_estadual   varchar(20) = null     
    ,@for_inscr_municipal   varchar(20) = null     
    ,@for_inscr_inss   varchar(20) = null     
    ,@for_pis_pasep   varchar(20) = null     
    ,@for_rua     varchar(50) = null     
    ,@for_numero     varchar(5) = null     
    ,@for_complemento   varchar(15) = null     
    ,@for_cep     varchar(8) = null     
    ,@for_bairro     varchar(30) = null     
    ,@for_cidade     varchar(30) = null     
    ,@for_uf     varchar(2) = null     
    ,@for_fone1     varchar(12) = null     
    ,@for_fone2     varchar(12)  = null     
    ,@for_email     varchar(50) = null     
    ,@ban_cod     numeric = null     
    ,@age_cod     int  = null     
    ,@for_ctacorrente   varchar(10) = null
    ,@for_tipopessoa   varchar(1) = null       
    ,@for_dv_ctacorrente   varchar(2) = null     
    ,@for_restricao    int  = null     
    ,@for_observacao   varchar(200) = null 

    AS      
         
    --DECLARE @for_Dta_Nasc VARCHAR(10)
    --CONVERT(VARCHAR(12),@for_Dta_Nasc,120) AS '120'

    --SET VAR_DATANASC = CONVERT(datetime, @for_Dta_Nasc)
    --CONVERT(VARCHAR, GETDATE(), 103)
     

     

    IF NOT EXISTS(SELECT * from fornecedor where for_cgccpf = @for_cgccpf)     
        BEGIN
        BEGIN TRANSACTION     
         INSERT INTO fornecedor (
     for_cgccpf, for_nome, for_nome_fantasia,
     for_Dta_Nasc, for_CBO, for_inscr_estadual,
     for_inscr_municipal, for_inscr_inss, for_pis_pasep,
     for_rua, for_numero, for_complemento, for_cep,
     for_bairro, for_cidade, for_uf,
     for_fone1, for_fone2, for_email,
     ban_cod, age_cod, for_ctacorrente,
     for_tipopessoa, for_dv_ctacorrente, for_restricao,
     for_observacao)      
         VALUES (
     @for_cgccpf, @for_nome, @for_nome_fantasia,
     @for_Dta_Nasc, @for_CBO, @for_inscr_estadual,
     @for_inscr_municipal, @for_inscr_inss, @for_pis_pasep,
     @for_rua, @for_numero, @for_complemento, @for_cep,
     @for_bairro, @for_cidade, @for_uf,
     @for_fone1, @for_fone2, @for_email,
     @ban_cod, @age_cod, @for_ctacorrente,
     @for_tipopessoa, @for_dv_ctacorrente, @for_restricao,
     @for_observacao)      
         IF @@ERROR <> 0      
              ROLLBACK TRANSACTION     
          ELSE     
              COMMIT TRANSACTION     
         END
    ELSE
        BEGIN
        BEGIN TRANSACTION     
         UPDATE fornecedor
     SET for_cgccpf = @for_cgccpf, for_nome = @for_nome, for_nome_fantasia = @for_nome_fantasia,
     for_Dta_Nasc = @for_Dta_Nasc, for_CBO = @for_CBO, for_inscr_estadual = @for_inscr_estadual,
     for_inscr_municipal = @for_inscr_municipal, for_inscr_inss = @for_inscr_inss, for_pis_pasep = @for_pis_pasep,
     for_rua = @for_rua, for_numero = @for_numero, for_complemento = @for_complemento, for_cep = @for_cep,
     for_bairro = @for_bairro, for_cidade = @for_cidade, for_uf = @for_uf,
     for_fone1 = @for_fone1, for_fone2 = @for_fone2, for_email = @for_email,
     ban_cod = @ban_cod, age_cod = @age_cod, for_ctacorrente = @for_ctacorrente,
     for_tipopessoa = @for_tipopessoa, for_dv_ctacorrente = @for_dv_ctacorrente, for_restricao = @for_restricao,
     for_observacao = @for_observacao
          WHERE (for_cgccpf = @for_cgccpf)     
          IF @@ERROR <> 0      
              ROLLBACK TRANSACTION     
          ELSE     
              COMMIT TRANSACTION     
          END

     

     

    terça-feira, 25 de setembro de 2007 14:22
  • Bom dia Augusto, experimenta isso:

     

    ALTER      procedure dbo.STP_INSERIR_FORNECEDOR
     
    @for_cgccpf      varchar(15) = null     
    ,@for_nome       varchar(50) = null     
    ,@for_nome_fantasia   varchar(50) = null     
    ,@for_Dta_Nasc   varchar(10) = null     
    ,@for_CBO     varchar(6) = null
    ,@for_inscr_estadual   varchar(20) = null     
    ,@for_inscr_municipal   varchar(20) = null     
    ,@for_inscr_inss   varchar(20) = null     
    ,@for_pis_pasep   varchar(20) = null     
    ,@for_rua     varchar(50) = null     
    ,@for_numero     varchar(5) = null     
    ,@for_complemento   varchar(15) = null     
    ,@for_cep     varchar(8) = null     
    ,@for_bairro     varchar(30) = null     
    ,@for_cidade     varchar(30) = null     
    ,@for_uf     varchar(2) = null     
    ,@for_fone1     varchar(12) = null     
    ,@for_fone2     varchar(12)  = null     
    ,@for_email     varchar(50) = null     
    ,@ban_cod     numeric = null     
    ,@age_cod     int  = null     
    ,@for_ctacorrente   varchar(10) = null
    ,@for_tipopessoa   varchar(1) = null       
    ,@for_dv_ctacorrente   varchar(2) = null     
    ,@for_restricao    int  = null     
    ,@for_observacao   varchar(200) = null 

    AS       
         

    Declare @Ffor_DTA_Nasc Datetime

    SET @Ffor_DTA_Nasc = CONVERT(datetime, @for_Dta_Nasc,103)

    IF NOT EXISTS(SELECT * from fornecedor where for_cgccpf = @for_cgccpf)     
        BEGIN
        BEGIN TRANSACTION     
         INSERT INTO fornecedor (
     for_cgccpf, for_nome, for_nome_fantasia,
     for_Dta_Nasc, for_CBO, for_inscr_estadual,
     for_inscr_municipal, for_inscr_inss, for_pis_pasep,
     for_rua, for_numero, for_complemento, for_cep,
     for_bairro, for_cidade, for_uf,
     for_fone1, for_fone2, for_email,
     ban_cod, age_cod, for_ctacorrente,
     for_tipopessoa, for_dv_ctacorrente, for_restricao,
     for_observacao)      
         VALUES (
     @for_cgccpf, @for_nome, @for_nome_fantasia,
     @Ffor_Dta_Nasc, @for_CBO, @for_inscr_estadual,
     @for_inscr_municipal, @for_inscr_inss, @for_pis_pasep,
     @for_rua, @for_numero, @for_complemento, @for_cep,
     @for_bairro, @for_cidade, @for_uf,
     @for_fone1, @for_fone2, @for_email,
     @ban_cod, @age_cod, @for_ctacorrente,
     @for_tipopessoa, @for_dv_ctacorrente, @for_restricao,
     @for_observacao)      
         IF @@ERROR <> 0      
              ROLLBACK TRANSACTION     
          ELSE     
              COMMIT TRANSACTION     
         END
    ELSE
        BEGIN
        BEGIN TRANSACTION     
         UPDATE fornecedor
     SET for_cgccpf = @for_cgccpf, for_nome = @for_nome, for_nome_fantasia = @for_nome_fantasia,
     for_Dta_Nasc = @Ffor_Dta_Nasc, for_CBO = @for_CBO, for_inscr_estadual = @for_inscr_estadual,
     for_inscr_municipal = @for_inscr_municipal, for_inscr_inss = @for_inscr_inss, for_pis_pasep = @for_pis_pasep,
     for_rua = @for_rua, for_numero = @for_numero, for_complemento = @for_complemento, for_cep = @for_cep,
     for_bairro = @for_bairro, for_cidade = @for_cidade, for_uf = @for_uf,
     for_fone1 = @for_fone1, for_fone2 = @for_fone2, for_email = @for_email,
     ban_cod = @ban_cod, age_cod = @age_cod, for_ctacorrente = @for_ctacorrente,
     for_tipopessoa = @for_tipopessoa, for_dv_ctacorrente = @for_dv_ctacorrente, for_restricao = @for_restricao,
     for_observacao = @for_observacao
          WHERE (for_cgccpf = @for_cgccpf)     
          IF @@ERROR <> 0      
              ROLLBACK TRANSACTION     
          ELSE     
              COMMIT TRANSACTION     
          END

     

     

     

    Espero ter ajudado

    terça-feira, 25 de setembro de 2007 14:50
  • Olá Anderson,

     

    Cara muito obrigado era isso mesmo, pô quando a gente não sabe é uma m**** mesmo...(rs)

    Eu li uns artigos no imasters e vi alguns exemplos daqui do fórum, montei igual como vc postou agora, porém não atentei que tinha que mudar as variáveis nas transações, eu continuei com @for_dta_nasc e a "GRANDE SACADA" era substituir pela variável declarada logo abaixo do cabeçalho do código (@Ffor_dta_nasc)...  ehhehehehhe

     

    Bom, novamente agradeço, já foi uma grande aprendizado...

     

    Agradeço tb a todos que leram o post e se interessaram em me ajudar!!!

     

    Abcs,

     

    Augusto

     

    terça-feira, 25 de setembro de 2007 17:49