Ao testar um simples código de acesso a um arquivo MDB pelo VB2008, recebi a seguinte mensagem de erro:
---------------------------
---------------------------
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.
---------------------------
OK
---------------------------
Como tenho o MS-Access instalado e funcionando normalmente na máquina, tenho certeza de que o Jet está registrado.
O problema está ligado à versão 64bit do Windows, e a solução é exatamente a mesma que eu descrevi semanas atrás para o componente Shockwave Flash: abrir as Propriedades > Compile > Advanced Compile Options > Target CPU e escolher x86.
A atualização do Windows disponível no KB960715, chamada "Update Rollup for ActiveX Kill Bits", a qual visa resolver questões de segurança no Internet Explorer, tem como consequência a quebra de controles ActiveX usados há anos pelo VB6, como Flexgrid, Hierarchical Flexgrid, Datagrid, Chart control, Masked Edit, Winsock e Animation.
Para resolver, é preciso distribuir a nova versão dos controles, que pode ser obtida com a instalação do "VB6 SP6 Cumulative Update": http://www.microsoft.com/downloads/details.aspx?FamilyId=CB824E35-0403-45C4-9E41-459F0EB89E36&displaylang=en&displaylang=en
Esta instalação requer o Visual Basic 6 com o Service Pack 6 (http://www.microsoft.com/downloads/details.aspx?FamilyID=9ef9bf70-dfe1-42a1-a4c8-39718c7e381d&displaylang=en).
Quem não tiver o Visual Basic 6 não conseguirá baixar os controles. A princípio, parece um requisito normal, já que a distribuição destes ActiveX requer uma licença do Visual Basic. Porém, existe um outro produto da Microsoft (e dos caros!) que licencia a distribuição dos ActiveX: o Office Developer Edition. Quem tem apenas o Office Developer Edition (e não o VB6) ficou na mão, pois não tem como baixar as atualizações.
Mais informações aqui:
http://blogs.msdn.com/askie/archive/2009/02/20/certain-vb-controls-no-longer-display-on-web-pages-after-installing-kb960715.aspx
Ao fazer uma simples operação de atachar um database no SQL Server, é possível que você receba uma mensagem de erro como esta:
TITLE: Microsoft SQL Server Management Studio
------------------------------
An error occurred when attaching the database(s). Click the hyperlink in the Message column for details.
------------------------------
BUTTONS:
OK
------------------------------
E a explicação no hyperlink é esta:
TITLE: Microsoft SQL Server Management Studio
------------------------------
Attach database failed for Server 'TOSHIBA-LUIZ\SQLEXPRESS2005'. (Microsoft.SqlServer.Smo)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.2531.0+((Katmai_PCU_Main).090329-1045+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Não é possível abrir o arquivo físico "C:\Projetos\Data\GMedico.mdf". Erro do sistema operacional 5: "5(error not found)". (Microsoft SQL Server, Error: 5120)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4035&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476
------------------------------
BUTTONS:
OK
------------------------------
Nas primeiras vezes que tive este erro, a única solução que encontrei foi atachar o database em outro servidor, fazer Backup e depois restaurar no meu servidor. Depois descobri que se tratava de um simples problema de permissão: bastou abrir o Management Studio com permissões de administrador que eu consegui atachar normalmente.
No que se refere à forma de contratação, podemos classificar projetos de desenvolvimento de software em dois tipos principais:
a) Projetos abertos: o fornecedor cobra x reais por hora de serviço prestado de um determinado perfil técnico.
b) Projetos fechados: o cliente determina um escopo e o fornecedor cobra x reais pelo "produto", dentro de um prazo combinado.
A diferença entre os dois tipos de contratação vai muito além do cálculo do preço. Existem diferenças nas expectativas, nos riscos, na forma de trabalho e na garantia.
Não se pode dizer que um tipo é melhor que o outro, pois depende de cada situação. Se o cliente tiver o escopo bem definido, pode valer mais a pena fazer um projeto fechado. Se o escopo não for claro, um projeto aberto é a melhor (para não dizer a única) solução.
Para o fornecedor de serviços, vender projetos abertos diminui bastante o risco, pois sua responsabilidade maior será garantir a qualidade do serviço prestado nas horas que vendeu. O risco de estouro de custo é do cliente.
Por outro lado, são os projetos fechados que possibilitam ao fornecedor ter ganhos maiores (e também perdas, obviamente). Se ele tiver boa produtividade interna, conseguirá vender projetos a preços competitivos e ter um ganho superior ao que teria se vendesse apenas as horas. E para o cliente existe a vantagem de não assumir riscos de custo, já que o preço é fixo.
A rigor, o objeto da venda é diferente em cada tipo: num projeto fechado, vende-se uma entrega, um "produto"; num projeto aberto, vendem-se horas, mão-de-obra (e não o "produto" que vai ser criado com o uso destas horas).
O que tenho visto no mercado, em algumas grandes empresas, é a confusão dos conceitos. Tem sido comum clientes pedirem propostas com preços fechados e, na fase de negociação (ou mesmo antes disto), exigirem que o fornecedor informe quantas horas vai consumir no projeto.
Ora, esta informação tem natureza de segredo industrial e não deveria ser solicitada, até por questões éticas. Por isto, não há problema algum o fornecedor recusar abrir estes números.
Imaginem, por exemplo, que eu vá comprar 20 monitores para a minha empresa. Eu vou contratar um fornecedor que tenha preço, qualidade e prazo que me satisfaçam, e só. Não faz sentido eu exigir que ele me informe quantas horas vai gastar na fabricação, já que isto é segredo dele. Se ele tiver investido em equipamentos, tecnologia e pessoal que lhe permitam fabricar meu pedido em pouco tempo, melhor para ele, terá seu investimento recompensado.
A mesma regra vale para fabricantes de software: se a empresa investiu em equipe, treinamento, componentes, automatização e tecnologia que lhe permitam desenvolver um software em pouco tempo, não faz sentido ela ter que divulgar para quem quer que seja a sua real produtividade e seus custos internos de produção. Isto é um segredo industrial seu.
Assim, se você é um desenvolvedor ou uma empresa que vende projetos fechados, não há nada de errado em não divulgar a quantidade de horas. É um segredo do seu ofício, da sua forma de trabalhar. E pior: certamente esta informação só será usada contra você, nunca a seu favor. Limite-se a discutir prazo, qualidade e preço.