O PROVEDOR MICROSOFT.JET.OLEDB.4.0

PROFESSOR 09/03/2013 03:06:10
#420220
Hehehehe!

Gostoso acompanhar esse tipo de tópico, pois há alguns anos a Microsoft já sugeriu aos programadores que utilizem os NetProviders especializados, uma vez que não há drivers OleDb de 64 bits. E sempre que utilizar o Namespace Data.OleDb,
Ou como se diz por lá, [Ô]Os OleDb x86 e x64 não são compatíveis entre sí[Ô].

E não há de fato drivers OleDb x64? Provavelmente não, ainda que os fabricantes possam os rotular dessa forma, pois a OleDb é basicamente a tecnologia da Microsoft Object Linking and Embedding, neste caso usando modelos de bases de dados como encapsulamento, e isso pressupõe 32 bits, onde as proto-classes são [Ô]registradas[Ô] pelo Windows (requer reinicialização, ou seja, as proto-classes são [Ô]lidas[Ô] junto com o Windows).

No caso dos sistemas de 64 bits, o modelo é bem mais amplo, e pode reconhecer padrões gerados em tempo de execução, ou seja, sem a necessidade de [Ô]registro[Ô], basta apenas instanciar a classe, e assim, mesmo que o rótulo seja do fabricante insista em dizer que se trata de um OleDb x64, não o é efetivamente, mas sim um provider x64.

Os NetProviders, claro, nem sempre estão atualizadinhos no Visual Studio, e requerem que vez por outra o programador [Ô]vasculhe[Ô] até o inferno por atualizações. Assim, o ODAC da Oracle, o NPGSQL para PostGreSql, e até para o MS-Access, se utilizamos, temos de estar [Ô]antenados[Ô] com as atualizações.

Se você está em uma máquina de desenvolvimento, prefira sempre um O.S. 64 bits, pois poderá gerar aplicativos x64 ou x32 sem esforço. O cliente pode ter o sistema que quiser, mas o desenvolvedor deve preferir o x64, e manter sempre os drivers atualizados (o mesmo serve para o SQL Server CE, para MSDASQL e outros.

E para quê, afinal, devo preferir desenvolver em um x64? Bom, é opção pessoal ou de bolso, mas veja:

No momento de compilar seu aplicativo em modo de Debug, se o O.S. é x64, mesmo que você marque o destino como x86, nenhum erro será disparado, [Ô]simulando[Ô] um x86, o que é uma mão na roda.

Já no modo Release, se seu O.S. é x86 e seu cliente possui um x64, você se vê obrigado á usar [Ô]manobras[Ô] para que sua aplicação execute em modo de compatibilidade. Além disso, sempre poderão ocorrer imprevistos decorrentes dos drivers, que você não é capaz de detectar no desenvolvimento.

Assim, [Ô]apenas[Ô] para não passar aperto na frente do cliente, estar com um x64 no desenvolvimento parece ser o adeqüado.
Página 2 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas