UM PROVEDOR DE FIREBIRD
Ola galera:
Gostaria de saber qual é o provedor mais rápido para usar o firebird, entre os vbmaniacos eu descobri por comentário que o firebird é muito maior e menos voluvel que o access, porém eu fix uma tabela clientes com o firebird e inseri 75 mil registros e demora muito para abrir o bd cerca de 3 segundos, isso em uma máquina com 256 mb de memoria, pentiun 3 800 mega. sem estar na rede, com o access isso é instantaneo!!! Como eu faço para conseguir um provedor rápido, ou onde eu conseguiria
Gostaria de saber qual é o provedor mais rápido para usar o firebird, entre os vbmaniacos eu descobri por comentário que o firebird é muito maior e menos voluvel que o access, porém eu fix uma tabela clientes com o firebird e inseri 75 mil registros e demora muito para abrir o bd cerca de 3 segundos, isso em uma máquina com 256 mb de memoria, pentiun 3 800 mega. sem estar na rede, com o access isso é instantaneo!!! Como eu faço para conseguir um provedor rápido, ou onde eu conseguiria
Se quiser outros provedores OLEDB para o FIREBIRD você encontrará no site oficial aqui no Brasil
http://www.firebase.com.br/fb/
http://www.firebase.com.br/fb/
O link é este mesmo que o GERMANIR mencionou acima. E eu uso e recomento o ZStyle
Eu uso o IBFREE, IBOLEDB.DLL, e nunca tive problemas. O ZStyle também é muito bom, roda sem problemas. Mas, achei a IBOLEDB.DLL mais rápida...
Pelos outros tópicos notei que usava o access, só mais uma dica
Instale o DBManager
(http://www.dbtools.com.br/PT/dbmanagerpro). Tem um wizard que importa
MSAccess, MSExcel, ODBC, Xbase, Arquivos Textos (formatados/delimitados),
HTML, XML. O DBManager é um gerenciador para MySQL, PostgreSQL, Interbase,
Firebird, SQLite, tabelas XBase, MSAccess, MSSQL Server, Sybase e Oracle.
Para migrar dados de um para outro e só arrastar a tabela e soltá-la em um
outro banco/servidor.
Obs: [txt-backcolor=#ffff00]O wizard para importar MSAccess permite importar/converter: estrutura,
dados, consultas e relationamentos.
Se tiver alguma coisa em access e quiser migrar... é uma mão na roda.[/txt-backcolor]
Abraços,
Germanir
Instale o DBManager
(http://www.dbtools.com.br/PT/dbmanagerpro). Tem um wizard que importa
MSAccess, MSExcel, ODBC, Xbase, Arquivos Textos (formatados/delimitados),
HTML, XML. O DBManager é um gerenciador para MySQL, PostgreSQL, Interbase,
Firebird, SQLite, tabelas XBase, MSAccess, MSSQL Server, Sybase e Oracle.
Para migrar dados de um para outro e só arrastar a tabela e soltá-la em um
outro banco/servidor.
Obs: [txt-backcolor=#ffff00]O wizard para importar MSAccess permite importar/converter: estrutura,
dados, consultas e relationamentos.
Se tiver alguma coisa em access e quiser migrar... é uma mão na roda.[/txt-backcolor]
Abraços,
Germanir
Bom gostei das dicas, porém ainda usando o Iboledb, meu banco de dados abre lento: Exemplo, fiz um bd no firebird só com uma tabela clientes e ele com esta procidure pequena abre muito lento, demora cerca de 4 segundos da maquina principal, se isto estiver na rede eu nem imagino quanto vai demorar.
Dim scaminho As String
scaminho = "C:\bdFirebird\BDSYSTCOM.GDB"
Dim sql As String
Dim c As ADODB.Connection
Dim r As ADODB.Recordset
Set c = New ADODB.Connection
Set r = New ADODB.Recordset
r.Open "SELECT clicodigo,clibairro,clicpf,clinome,clibairro, clicep, cliendereco from tabcliente order by cliNOME desc", "Provider=IbOleDb.1;Data Source=C:\bdfirebird\bdsystcom.gdb;User ID=SYSDBA;Password=masterkey;Persist Security Info=True"
'Set r = c.Execute(sql)
r.MoveFirst
MsgBox r!cLINOME
Se alguem tiver uma dica eu agradeço!!!
Dim scaminho As String
scaminho = "C:\bdFirebird\BDSYSTCOM.GDB"
Dim sql As String
Dim c As ADODB.Connection
Dim r As ADODB.Recordset
Set c = New ADODB.Connection
Set r = New ADODB.Recordset
r.Open "SELECT clicodigo,clibairro,clicpf,clinome,clibairro, clicep, cliendereco from tabcliente order by cliNOME desc", "Provider=IbOleDb.1;Data Source=C:\bdfirebird\bdsystcom.gdb;User ID=SYSDBA;Password=masterkey;Persist Security Info=True"
'Set r = c.Execute(sql)
r.MoveFirst
MsgBox r!cLINOME
Se alguem tiver uma dica eu agradeço!!!
[txt-size=3]
Para fazer a conexão eu uso o IBoleDB.dll
..uso a seguinte rotina... ..ela demora pra conectar a primeira vez (via rede 3 seg)... ..depois fica rápido (máx 1 seg)
' ****************************
Dim adoConn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Sub ConectaAoBanco_teste()
adoConn.Open "Provider=ZStyle IBOLE Provider;Password=masterkey;User ID=SYSDBA; SQL Dialect=3 ;Logging Level=0; Data Source=NOME_SERVIDOR:DISCO:\PASTA\PASTA_DO_BANCO\DB.gdb;Open Mode=0"
rst.CursorLocation = adUseClient
MsgBox "Conexão Ok"
End Sub
' ****************************
Sub DesconectaBanco_teste()
rst.Close
adoConn.Close
Set rst = Nothing
Set adoConn = Nothing
MsgBox "Desconectado com Sussesso"
End Sub [/txt-size]
Para fazer a conexão eu uso o IBoleDB.dll
..uso a seguinte rotina... ..ela demora pra conectar a primeira vez (via rede 3 seg)... ..depois fica rápido (máx 1 seg)
' ****************************
Dim adoConn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Sub ConectaAoBanco_teste()
adoConn.Open "Provider=ZStyle IBOLE Provider;Password=masterkey;User ID=SYSDBA; SQL Dialect=3 ;Logging Level=0; Data Source=NOME_SERVIDOR:DISCO:\PASTA\PASTA_DO_BANCO\DB.gdb;Open Mode=0"
rst.CursorLocation = adUseClient
MsgBox "Conexão Ok"
End Sub
' ****************************
Sub DesconectaBanco_teste()
rst.Close
adoConn.Close
Set rst = Nothing
Set adoConn = Nothing
MsgBox "Desconectado com Sussesso"
End Sub [/txt-size]
Bom gostei da suas procedures a conecção esta rápida, mas e para acessar os tados, exemplo de determinada tabela, tbclientes, como eu faço?
Aqui.. sasa..:
Dim adoConn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Sub ConectaAoBanco_teste()
adoConn.Open "Provider=ZStyle IBOLE Provider;Password=masterkey;User ID=SYSDBA; SQL Dialect=3 ;Logging Level=0; Data Source=NOME_SERVIDOR:DISCO:\PASTA\PASTA_DO_BANCO\DB.gdb;Open Mode=0"
rst.CursorLocation = adUseClient
[txt-backcolor=#ffff00]set rst.connection = adoCnn
sql = "select * from clientes"
rst.open sql,cnn adOpenDynamic, adLockOptimistic [/txt-backcolor]
End Sub
' ****************************
Sub DesconectaBanco_teste()
rst.Close
adoConn.Close
Set rst = Nothing
Set adoConn = Nothing
MsgBox "Desconectado com Sussesso"
End Sub
entendeu?
Dim adoConn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Sub ConectaAoBanco_teste()
adoConn.Open "Provider=ZStyle IBOLE Provider;Password=masterkey;User ID=SYSDBA; SQL Dialect=3 ;Logging Level=0; Data Source=NOME_SERVIDOR:DISCO:\PASTA\PASTA_DO_BANCO\DB.gdb;Open Mode=0"
rst.CursorLocation = adUseClient
[txt-backcolor=#ffff00]set rst.connection = adoCnn
sql = "select * from clientes"
rst.open sql,cnn adOpenDynamic, adLockOptimistic [/txt-backcolor]
End Sub
' ****************************
Sub DesconectaBanco_teste()
rst.Close
adoConn.Close
Set rst = Nothing
Set adoConn = Nothing
MsgBox "Desconectado com Sussesso"
End Sub
entendeu?
Pucha mas por que a conecção com o Bd é tão rápida mas quando tentamos acessar algum registro Ela se torna lenta, eu estou testado se código com pouco mais de 100 mil registro em uma tabela com 3 campos, mas esta muito demorado, para acessar o ultimo item!!!
[S91][S91][S91][S91]
[S91][S91][S91][S91]
Usa o MOVELAST do Recordset, ou abre o Ãndice de cabeça pra baixo (ordenar com DESC), e vai para o primeiro registro. Pra cair num registro especÃfico, use o WHERE, ao invés de navegar com o recordset todo carregado.
PS: Nunca use o SELECT * FROM TABELA, selecione somente os campos que for usar pra fazer a consulta.
PS: Nunca use o SELECT * FROM TABELA, selecione somente os campos que for usar pra fazer a consulta.
Tópico encerrado , respostas não são mais permitidas