Primeiramente venho aqui agradecer à todos do Fórum ScriptBrasil que mesmo que involuntariamente, muito me ajudam. Obrigado!!!
Gostaria também de antecipar minhas desculpas caso o Tópico não esteja de acordo com as regras do fórum.
Deixo também algumas observações, tais como:
Obs.: Estou criando este tópico em meu trabalho, pois estou sem internet em casa ( mudei a pouco tempo e não consegui ainda transferir a instalação). Assim sendo, fica difícil postar erros etc... de maneira 100% clara e, por isso, tentarei ser claro em minhas perguntas e não me ater muito aos códigos.
OBS.: Configurações de PC: I5 -2° geração, 8 GB de memória, SO - Win 7 - 64;
Bem, vamos aos fatos! Sou iniciante em Visual Basic 6.0, ingressei no mesmo trabalhando com Banco de Dados Access, onde não obtive quaisquer problemas, claro, com um BD muito pequeno, algo entorno de 2000 registros. No Access sempre utilizei conexões comuns ( pelo menos para mim ) tipo." Public BD as Database "; " Public TB as Recordset "; sempre atendeu muito bem ao que eu pretendia, retornando dados de pesquisa mais rápido que um 'piscar de olhos'.
Com o passar do tempo, fui lendo, lendo e relendo, assim me deparei com o Firebird, que apesar das muitas reclamações que vi sobre dados corrompidos, me despertou curiosidade, dessa maneira baixei e instalei sua versão 2.0.4, juntamente do IBExpert Personal Edition e instalei também o Firebrid ODBC Drive para win 7 64 bits. Iniciei meus testes e estudos. Achei o IBExpert muito agradável, o ISQL do Firebird de fácil manipulação etc... tudo muito lindo, Fiz a transferência dos mesmos dados Acess para o Banco do Firebird, foi ai que começou aparecer alguns problemas.
1° O Banco de dados é muito pequeno ( pouco menos de 2000 registros ), no Access as consultas retornavam resultados em "menos de um piscar de olhos" ( como já disse acima ), nem dava para perceber a "olho nu" , tal sua velocidade. Com o Firebird, eu pensei que seria os mesmos resultados ( em velocidade ) ou até melhores, no entanto ele demora entre 3 e 4 segundos para me retornar a pesquisa, isto com o Banco já aberto. Ao meu ver, muito lento. Não sei se tem muito haver com a velocidade o fato de eu ter colocado o Page_Size em torno de 8000 ( não lembro o valor exato.)
2° Quando abria o BD com o Access era só eu indicar onde estava o BD, tipo: "C;\Banco\MeuBanco.MDB", ou usando o AppPath, de toda forma, não importando o local, sempre conseguia fazer abertura e conexão com o mesmo. Já com o Firebird, utilizando Drive ODBC e conexão ADODB, me retornou um problema. veja: Se o BD estiver na seguinte pasta "C:\Program Files\Firebird\Firebird_ODBC" consigo a conexão sem problemas. No entanto, se eu mudar o local do BD, mesmo que lá no VB6 eu altere a pasta como por exemplo "C:\SomenteUmTeste\BancoTeste\MEUBANCO.FDB", ainda assim ele me retorna o erro abaixo:
Run-time error '-2147217843 (80040e4d)':
[ODBC Firebird Drive]File Database is not found
3° Quando eu abria o BD com o Access, se não estiver enganado, eu fazia como descrito abaixo:
Private sub Form_load()
Dim Banco as Database
Dim TB as Recordset
Set Banco = OpenDatabase("caminhadoBancodeDados", false, false) ' se não estiver enganado novamente, essa é uma conexão DAO
Set TB = Banco.OpenRecordset("NomedaTabela")
End Sub
4° Já utilizando ADODB eu tentei o seguinte ( dá certo na pasta que já expliquei anteriormente ):
Se não estiver novamente enganado é esse código ai que eu escrevi lá em casa e com o BD lá na pasta do Firebird_ODBC funciona, mais se eu retiro de lá e especifico o local tipo: " ...... DBNAME=C:\Teste_BD\Banco\MeuBanco.FDB", ai já não funciona.
Agora vem as perguntas:
1° É normal essa demora em me retornar os resultados buscados no Banco de dados? Sei que meu PC não é apropriado para servir de Servidor, mas a aplicação é pequena, e o BD é minúsculo. Contudo, ainda utilizo instruções SQL para a busca ( eu li que é um tipo de instrução bastante rápida ).
2° Caso a resposta da primeira pergunta seja: "Não, não é normal!", como posso melhorar? a Page_Size está muito alta? Baixa? Qual seria o recomendado para a minha maquina e meu BD?
3° O Drive ODBC é bom para conexões com o Firebird através do VB6??
4° Tem algum drive melhor ( preferência grátis, afinal, estou em fase de estudo e aprendizagem ) ? Algum que vocês recomendam?
5° Esse negocio dele não reconhecer o BD quando eu o retiro do caminho " C:\Program Files\Firebird\Firebird_ODBC " tem solução? será que eu estou errando no código?
6° O que é melhor e porque.? Declarar a variável já com o New ADODB.Connection ou criar o ADODB.Connection e posteriormente mandar um New? Existe diferença?
7º Vocês tem algum Curso online ( preferência com vídeo-aulas ), pode ser PAGO que me recomendam? Não algo do tipo " ouvi dizer que esse curso é bom " e sim algo que vocês fizeram e acharam realmente bom, bem explicativo etc...?
Bom gente, é isso ai, peço desculpas novamente caso o texto tenha ficado demasiadamente grande e aproveito para agradecer mais uma vez. Vocês me ajudam muito. Muito Obrigado!!!
Pergunta
mauricioneto
Bom Dia!
Primeiramente venho aqui agradecer à todos do Fórum ScriptBrasil que mesmo que involuntariamente, muito me ajudam. Obrigado!!!
Gostaria também de antecipar minhas desculpas caso o Tópico não esteja de acordo com as regras do fórum.
Deixo também algumas observações, tais como:
Obs.: Estou criando este tópico em meu trabalho, pois estou sem internet em casa ( mudei a pouco tempo e não consegui ainda transferir a instalação). Assim sendo, fica difícil postar erros etc... de maneira 100% clara e, por isso, tentarei ser claro em minhas perguntas e não me ater muito aos códigos.
OBS.: Configurações de PC: I5 -2° geração, 8 GB de memória, SO - Win 7 - 64;
Bem, vamos aos fatos! Sou iniciante em Visual Basic 6.0, ingressei no mesmo trabalhando com Banco de Dados Access, onde não obtive quaisquer problemas, claro, com um BD muito pequeno, algo entorno de 2000 registros. No Access sempre utilizei conexões comuns ( pelo menos para mim ) tipo." Public BD as Database "; " Public TB as Recordset "; sempre atendeu muito bem ao que eu pretendia, retornando dados de pesquisa mais rápido que um 'piscar de olhos'.
Com o passar do tempo, fui lendo, lendo e relendo, assim me deparei com o Firebird, que apesar das muitas reclamações que vi sobre dados corrompidos, me despertou curiosidade, dessa maneira baixei e instalei sua versão 2.0.4, juntamente do IBExpert Personal Edition e instalei também o Firebrid ODBC Drive para win 7 64 bits. Iniciei meus testes e estudos. Achei o IBExpert muito agradável, o ISQL do Firebird de fácil manipulação etc... tudo muito lindo, Fiz a transferência dos mesmos dados Acess para o Banco do Firebird, foi ai que começou aparecer alguns problemas.
1° O Banco de dados é muito pequeno ( pouco menos de 2000 registros ), no Access as consultas retornavam resultados em "menos de um piscar de olhos" ( como já disse acima ), nem dava para perceber a "olho nu" , tal sua velocidade. Com o Firebird, eu pensei que seria os mesmos resultados ( em velocidade ) ou até melhores, no entanto ele demora entre 3 e 4 segundos para me retornar a pesquisa, isto com o Banco já aberto. Ao meu ver, muito lento. Não sei se tem muito haver com a velocidade o fato de eu ter colocado o Page_Size em torno de 8000 ( não lembro o valor exato.)
2° Quando abria o BD com o Access era só eu indicar onde estava o BD, tipo: "C;\Banco\MeuBanco.MDB", ou usando o AppPath, de toda forma, não importando o local, sempre conseguia fazer abertura e conexão com o mesmo. Já com o Firebird, utilizando Drive ODBC e conexão ADODB, me retornou um problema. veja: Se o BD estiver na seguinte pasta "C:\Program Files\Firebird\Firebird_ODBC" consigo a conexão sem problemas. No entanto, se eu mudar o local do BD, mesmo que lá no VB6 eu altere a pasta como por exemplo "C:\SomenteUmTeste\BancoTeste\MEUBANCO.FDB", ainda assim ele me retorna o erro abaixo:
Run-time error '-2147217843 (80040e4d)':
[ODBC Firebird Drive]File Database is not found
3° Quando eu abria o BD com o Access, se não estiver enganado, eu fazia como descrito abaixo:
Private sub Form_load()
Dim Banco as Database
Dim TB as Recordset
Set Banco = OpenDatabase("caminhadoBancodeDados", false, false) ' se não estiver enganado novamente, essa é uma conexão DAO
Set TB = Banco.OpenRecordset("NomedaTabela")
End Sub
4° Já utilizando ADODB eu tentei o seguinte ( dá certo na pasta que já expliquei anteriormente ):
Private Sub Form_Load()
Dim Banco as New ADODB.Connection
Dim TB as New ADODB.Recordset
Banco.ConnectionString "DRIVER = Firebrid\InterBase® Driver; UID=SYSDBA; PWD=masterkey; DBNAME=MeuBanco.FDB"
Banco.Open
etc.. etc...
Se não estiver novamente enganado é esse código ai que eu escrevi lá em casa e com o BD lá na pasta do Firebird_ODBC funciona, mais se eu retiro de lá e especifico o local tipo: " ...... DBNAME=C:\Teste_BD\Banco\MeuBanco.FDB", ai já não funciona.
Agora vem as perguntas:
1° É normal essa demora em me retornar os resultados buscados no Banco de dados? Sei que meu PC não é apropriado para servir de Servidor, mas a aplicação é pequena, e o BD é minúsculo. Contudo, ainda utilizo instruções SQL para a busca ( eu li que é um tipo de instrução bastante rápida ).
2° Caso a resposta da primeira pergunta seja: "Não, não é normal!", como posso melhorar? a Page_Size está muito alta? Baixa? Qual seria o recomendado para a minha maquina e meu BD?
3° O Drive ODBC é bom para conexões com o Firebird através do VB6??
4° Tem algum drive melhor ( preferência grátis, afinal, estou em fase de estudo e aprendizagem ) ? Algum que vocês recomendam?
5° Esse negocio dele não reconhecer o BD quando eu o retiro do caminho " C:\Program Files\Firebird\Firebird_ODBC " tem solução? será que eu estou errando no código?
6° O que é melhor e porque.? Declarar a variável já com o New ADODB.Connection ou criar o ADODB.Connection e posteriormente mandar um New? Existe diferença?
7º Vocês tem algum Curso online ( preferência com vídeo-aulas ), pode ser PAGO que me recomendam? Não algo do tipo " ouvi dizer que esse curso é bom " e sim algo que vocês fizeram e acharam realmente bom, bem explicativo etc...?
Bom gente, é isso ai, peço desculpas novamente caso o texto tenha ficado demasiadamente grande e aproveito para agradecer mais uma vez. Vocês me ajudam muito. Muito Obrigado!!!
Ninguém??? :-(
Editado por mauricionetoLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.