Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

daianyyy

Conectar Oledb

Recommended Posts

O pessoal preciso me conectar no postgres usando o Oledb....estou programando em asp.net C#.....não estou tendo muito sucesso ...alguem pode me passar um tutorial e me dizer onde eu consigo o driver ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi pessoal consegui instalar o pgoledb na minha maquina e estou usando a string e conexão

connectionString="Provider=PostgreSQL OLE DB Provider;Data Source=localhost;location=Cas;User ID=postgres;password=daiany;timeout=1000"
mas está dando esse erro :

FATAL:  argumentos de linha de comando são inválidos para processo servidor
HINT:  Tente "postgres --help" para obter informações adicionais

Alguém sabe o que pode ser isso ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi meu anjinho...

 

Vamos lá: Primeiramente verifique se você tem o driver instalado corretamente.

Ele pode ser baixado pelo link: http://pgfoundry.org/frs/?group_id=1000085&release_id=539

Depois verifique se a connection string esta correta: "Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;location=myDataBase;User ID=myUsername;password=myPassword;timeout=1000;"

 

Em seguida coloque uma Query simples, sem parametros ou joins etc.. um simples "Select * from Tabela" e verifique se funcionou..

 

 

Espero te-la ajudado!

 

Beijinhos,

Angelo Compri

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaum eu baixei o drive ....coloquei as dlls no windows/system32 e registrei ....depois adicionei a dll no visual studio ....e testei com uma sql mais simples como você aconselhou ...soh que deu a mesma mensagem de erro !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi lindinha..

 

Bom, para verificar se o OleDb foi registrado com sucesso, você tentar estabelecer uma conexão usando o Excel, por exemplo.

Se funcionar, podem ser algum problema em sua aplicação. Você precisa identificar onde esta o problema primeiro.. se é na sua aplicação ou no Driver.

 

Tente isso.. e nos envie o resultado. ;)

 

Beijo,

Angelo Compri

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui conectar ...usei o modo visual para conectar dai copiei a string de conexão

connectionString="Provider=PostgreSQL.1;Data Source=localhost;User ID=postgres;password=daiany;Location=Cas;

mas agora tah dando esse erro

 


FillinValues failed

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui conectar ...usei o modo visual para conectar dai copiei a string de conexão

connectionString="Provider=PostgreSQL.1;Data Source=localhost;User ID=postgres;password=daiany;Location=Cas;

mas agora tah dando esse erro

 


FillinValues failed

Pode nos enviar o código que esta usando?? talvez fique facil identificar...

 

Obs: você notou a diferença de tempo entre os seus posts e os meus?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código que realiza a consulta que dá o erro

public Funcionarios Find(string codigo)
        {
            OleDbParameter par = new OleDbParameter("@FUNC_CODIGO", codigo);

            try
            {
                    //Executando a transação passando a conexão,o tipo do comando, o T-SQL e os parametros criados acima

                DataTable dt =
                    OleDbHelper.ExecuteDataset(Base.getConnection(),
                                             CommandType.Text,
                                             Statements.SELECT_FUNC_WHERE, par).Tables[0];
               //Criando o objeto da classe model para retorno do método
            
                Funcionarios funcionario=new Funcionarios();
            
                funcionario.Codigo=Convert.ToInt16(dt.Rows[0]["CODIGO"]);
                funcionario.Cpf=dt.Rows[0]["CPF"].ToString();
                funcionario.Nome=dt.Rows[0]["NOME"].ToString();
                funcionario.Telefone=dt.Rows[0]["TELEFONE"].ToString();
                funcionario.Email=dt.Rows[0]["EMAIL"].ToString();
                funcionario.Endereco=dt.Rows[0]["ENDERECO"].ToString();
                funcionario.Cidade=dt.Rows[0]["CIDADE"].ToString();
                funcionario.Cep=dt.Rows[0]["CEP"].ToString();
                funcionario.Estado=dt.Rows[0]["ESTADO"].ToString();
                funcionario.Categoria=dt.Rows[0]["CATEGORIA"].ToString();
                return funcionario;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

To usando uma classe OLEDBHelper

 

aki dah o erro FillinValues failed:

 

public static DataSet ExecuteDataset(OleDbConnection connection, CommandType commandType, string commandText, params OleDbParameter[] commandParameters) 
        {
			if( connection == null ) throw new ArgumentNullException( "connection" );

			// Create a command and prepare it for execution
			OleDbCommand cmd = new OleDbCommand();
			bool mustCloseConnection = false;
			PrepareCommand(cmd, connection, (OleDbTransaction)null, commandType, commandText, commandParameters, out mustCloseConnection );
    			
			// Create the DataAdapter & DataSet
			using( OleDbDataAdapter da = new OleDbDataAdapter(cmd) ) {
				DataSet ds = new DataSet();

				// Fill the DataSet using default values for DataTable names, etc
                try
                {
                    da.Fill(ds);
                }
                catch
                {
                }
				// Detach the OleDbParameters from the command object, so they can be used again
				cmd.Parameters.Clear();

				if( mustCloseConnection )
					connection.Close();

				// Return the dataset
				return ds;
			}	
		}

E ainda a consulta sql que estou tentando executar :

 public const string SELECT_FUNC_WHERE =
                                   "SELECT " +
                                   " CODIGO, CPF, NOME, TELEFONE, EMAIL, ENDERECO, CIDADE, CEP, ESTADO, CATEGORIA , EPC " +
                                   "FROM " +
                                   " FUNCIONARIOS " +
                                   "WHERE " +
                                   " CODIGO = ?";

Desculpe a demora dos posts ....é que estou no trabalho !!!!Rs....

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK.. vamos tentar alggo simples, verifique se uma clausula sem paramaetros e where funciona.

 

Se funcionar, podem ser os parametros..

 

Aguardo o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou seja, ainda não esta descartado a possibilidade de ser um problema com o Driver...

você conseguiu fazer a conexão usando o Excel? Ou apenas fez o teste com o Wizard do VS?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o teste com o Wizard do Vs e tbm debugando o programa vi que ele passou no connection.Open(); sem gerar nenhuma exceção ...naum é o suficiente???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com ceretza é o suficiente...

 

Agora me admira um SQL simples ter falhado.

você tentou algo como:

 

"SELECT * FROM FUNCIONARIOS"

 

E deu erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu procurei por este erro e encoteri diversas pessoas tendo o mesmo problema, mas nenhuma delas com a solução..

A maioria deixou de usar o OleDb e começou a usar o Mono: http://www.mono-project.com/PostgreSQL

 

Não sei se você pode usar outro recurso de conexão, mas talvez isso ajude.. de qualquer forma vou continuar dando uma fuçada se eu achar algo te aviso..

 

Beijo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entaum não posso mudar o driver .....o erro que tah dando tah bem na parte desse codigo

using( OleDbDataAdapter da = new OleDbDataAdapter(cmd) ) {
				DataSet ds = new DataSet();

				// Fill the DataSet using default values for DataTable names, etc
                try
                {
                    da.Fill(ds);
                }
                catch
                {
                }

Mas valeu a ajuda ...qualquer coisa me avisa ....bjos !!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.