Ajuda - Busca - Membros - Calendário
Versão Completa: Erro de Expressão não encontrada
Fórum Script Brasil > Programação & Desenvolvimento > .NET
mestre fyoda
CODE
'FUNÇÕES DE CONEXÃO AO BANCO DE DADOS
    Public Function ExecutaOracle(ByVal query As String) As Boolean
        'essa funcao aceita insert, delete, update
        Dim Conexao As New Oracle.DataAccess.Client.OracleConnection("Password=janio1;User ID=Rafael;Data Source=localhost")
        Dim cmd As New Oracle.DataAccess.Client.OracleCommand

        Try
            Conexao.Open()
        Catch ex As Exception
            MsgBox("Erro ao conectar no banco", MsgBoxStyle.Critical, "Aviso")
            Return False
        End Try
        Try
            cmd = Conexao.CreateCommand
            cmd.CommandText = query
            cmd.ExecuteNonQuery()
            cmd.Dispose()
            Conexao.Close()
            Return True
        Catch ex As Exception
            MsgBox("Erro ao executar a sql" + Chr(13) + ex.Message, MsgBoxStyle.Critical, "Aviso")
            cmd.Dispose()
            Conexao.Close()
            Return False
        End Try
    End Function

    Public Function RetornaData(ByVal query As String) As DataTable
        'essa funca aceita select
        Dim Conexao As New Oracle.DataAccess.Client.OracleConnection("Password=janio1;User ID=Rafael;Data Source=localhost")

        Dim da As Oracle.DataAccess.Client.OracleDataAdapter
        Dim dt As New DataTable


        Try
            Conexao.Open()
        Catch ex As Exception
            MsgBox("Erro ao conectar no banco", MsgBoxStyle.Critical, "Aviso")
            Return Nothing
        End Try

        Try
            da = New Oracle.DataAccess.Client.OracleDataAdapter(query, Conexao)
            da.Fill(dt)
        Catch ex As Exception
            MsgBox("Erro ao executar a sql", MsgBoxStyle.Critical, "Aviso")
            Return Nothing
        Finally
            Conexao.Close()
        End Try
        Return dt
    End Function



Chamo assim :
CODE
If ExecutaOracle(" INSERT INTO Cliente (cod_cli, cpf_tit, cpf_re1, cpf_re2, rg_tit, rg_re1, rg_re2, dat_ex, dat_ex1, dat_ex2, nom_tit, nom_re1, nom_re2, dat_nas, end_cli, cep_cli, bai_cli, est_cli) VALUES ( cod_cli.nextval, '" & cpf_tit.Text & "', '" & cpf_re1.Text & "', '" & cpf_re2.Text & "',  " & rg_tit.Text & " , " & rg_re1.Text & " , " & rg_re2.Text & ", '" & dat_ex.Text & "', '" & dat_ex1.Text & "', '" & dat_ex2.Text & "', '" & nom_tit.Text & "', '" & nom_re1.Text & "', '" & nom_re2.Text & "', '" & dat_nas.Text & "', '" & end_cli.Text & "', '" & cep_cli.Text & "', '" & bai_cli.Text & "', '" & est_cli.Text & "' ) ") = True Then

        End If


Meu bd

CODE
CREATE TABLE Cliente(
cod_cli number NOT NULL,
cpf_tit varchar(14) NOT NULL,
cpf_re1 varchar(14) NULL,
cpf_re2 varchar(14) NULL,
rg_tit  number NOT NULL,
rg_re1  number NULL,
rg_re2  number NULL,
dat_ex  date NOT NULL,
dat_ex1 date NULL,
dat_ex2 date NULL,
nom_tit varchar(50) NOT NULL,
nom_re1 varchar(50) NULL,
nom_re2 varchar(50) NULL,
dat_nas date NOT NULL,
end_cli varchar(60) NOT NULL,
cep_cli varchar(9)  NOT NULL,
bai_cli varchar(30) NOT NULL,
est_cli varchar(2)  NOT NULL,
CONSTRAINT Cliente_pk Primary Key(cod_cli, cpf_tit, rg_tit)
);


O que está de errado ?
quintelab
mestre fyoda já testou sua query direto no banco, tinha que ver qual o valor do seu parâmtro query que esta na ExecutaOracle, porque problema no código fonte não é. Qualquer coisa posta aqui o resultado da sua query em tempo de execução.
mestre fyoda
como eu faço isso ?
quintelab
Coloca um BreakPoint na linha:
CODE
Public Function ExecutaOracle(ByVal query As String) As Boolean


Quando ele chegar nessa linha veja o valor do seu parâmetro query!!
mestre fyoda
me retornou isso :
CODE
"INSERT INTO Cliente ( cod_cli, cpf_tit, rg_tit, dat_ex, nom_tit, dat_nas,  end_cli, cep_cli, bai_cli, est_cli, nom_re1, cpf_re1, rg_re1, dat_ex1, nom_re2, cpf_re2, rg_re2, dat_ex2 )  VALUES ( cod_cli.nextval ,'231.211.221-3', '23123123132132', '12/12/1984', '32113212123213231', '19/09/1982', '13223112312', '12321-332', '231231231', 'SP', '', '', '', '', '', '', '', '') "


Ai eu jogo no Oracle query analizer sem as " no incio e fim , e insere certinho no bd mas no vb.net não ta inserindo !
quintelab
Cara deve estar passando algo despercebido, pois não achei, mas tenta usar a função da seguinte forma:

CODE
Public Function ExecutaOracle(ByVal query As String) As Boolean
        'essa funcao aceita insert, delete, update
        Dim Conexao As New Oracle.DataAccess.Client.OracleConnection("Password=janio1;User ID=Rafael;Data Source=localhost")
        Dim cmd As Oracle.DataAccess.Client.OracleCommand

        Try
            Conexao.Open()
        Catch ex As Exception
            MsgBox("Erro ao conectar no banco", MsgBoxStyle.Critical, "Aviso")
            Return False
        End Try

        Try
            cmd = New Oracle.DataAccess.Client.OracleCommand(query, Conexao)
            cmd.ExecuteNonQuery()
            cmd.Dispose()
            Conexao.Close()
            Return True
        Catch ex As Exception
            MsgBox("Erro ao executar a sql" + Chr(13) + ex.Message, MsgBoxStyle.Critical, "Aviso")
            cmd.Dispose()
            Conexao.Close()
            Return False
        End Try
    End Function


Outra coisa, em qual linha estava dando o erro ?
mestre fyoda
agora ta funfando eu modifiquei e coloquei concatenado ai ficou mais facil de fazer
na hora de passar a query
quintelab
Magaviga, demorou mas deu certo.....
wink.gif
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.