USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Problemas com MSHFlexGrid
Fábio Cavalcant
PATOS
PB - BRASIL
Postada em 09/01/2005 01:06 hs            
Tenho uma tabela com 8.450 clientes e estou tentando preencher um MSHFlexGrid com todos os clientes, escrevendo pouco código, só que o MSHFlexGrid só é preenchido com os primeiros 2.048 clientes, os demais registros não são inseridos no grid, quando testo o preenchimento utilizando do while...loop ele preenche o grid normamente, só que fica lento.
Utilizo:
Banco de dados Access 2000: db.mdb
Tabela: tabClientes
Referência VB: Microsoft ActiveX Data Objects 2.1 library
Componente: Microsoft Hierarchical FlexGrid 6.0 Control (OLE DB).
 
Código:
 
Private Sub Form_Load()
 Dim cnn As New ADODB.Connection
 Dim rst As New ADODB.Recordset
 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:estoquedb.mdb"
 rst.Open "Select * From tabClientes", cnn, adOpenKeyset, adLockPessimistic
 Set gridClientes.DataSource = rst
 rst.Close
End Sub
 
Alguém pode me ajudar?
Uma braço.
Fábio.
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 09/01/2005 17:14 hs            
Eu recomendo vc usar o "Microsof DataGrid Control 6.0 (OLEDB)", neste caso vc não teria problemas era só acrescentar uma linha e tirar outra...
'Sendo gridClientes = DataGrid
Private Sub Form_Load()
 Dim cnn As New ADODB.Connection
 Dim rst As New ADODB.Recordset
 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:estoquedb.mdb"
rst.CursorLocation = adUseClient
rst.Open "Select * From tabClientes", cnn, adOpenKeyset, adLockPessimistic
 Set gridClientes.DataSource = rst
End Sub
Usando o Datagrid vem os 8.450 registros normalmente... mas se vc tiver q usar o MSHFlex não sei... como vc está fazendo o preenchimento?
     
Fábio Cavalcant
PATOS
PB - BRASIL
Postada em 09/01/2005 17:41 hs            
...
TÓPICO EDITADO
   
Fábio Cavalcant
PATOS
PB - BRASIL
Postada em 09/01/2005 17:46 hs            
É, com o DataGrid dá certo. Eu já havia tentado. No entanto, acho o DataGrid pouco flexível. Gostaria de tentar resolver com MSHFlexGrid. Se alguém poder ajudar, eu fico agradecido.
 
Faço o preenchimento usando comandos SQL... da seguinte forma:
String de conexão que utilizo: "Provider=MSDASQL.1;Persist Security Info=False;Data Source=DB_ESTOQUE" Obs.: Já tentei outros tipos de string de conexão, acho que é alguma configuração com MSHFlexGrid.
 
cnn.execute "INSERT INTO tabClientes (<campos>) VALUES (<valores>)"
 
cnn é o objeto de conexão com a base de dados.
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 09/01/2005 18:30 hs            
Bom, eu falava do preenchimento do MSHFlexgrid... vc faz por looping certo??
Já q vc fecha a conexão depois de "setar" o Grid então pq vc não abre a tabela com o tipo de cursor adOpenForwardOnly ?? talvez vá mais rápido...
     
Fábio Cavalcant
PATOS
PB - BRASIL
Postada em 09/01/2005 19:07 hs            
Obrigado pela ajuda ghost_jlp.
 
Encontrei o problema. Trata-se de um bug no MSHFlexGrid.
Para conhecer melhor o problema e como resolve-lo segue abaixo o link da página suporte da MicroSoft onde o problema é relatado.
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página