|
Postada em 02/04/2007 18:53 hs
Estou com um grande problema, estou criando um sistema de imigração de dados de um banco de dados DBF para SQL, estou precisando que o sistema exiba o nome do campo SQL...
Dim TabCadastro as String nArquivo = TabCadastro Set db = New Connection db.CursorLocation = adUseClient db.Open "PROVIDER=MSDASQL;dsn=BDSistema;uid=;pwd=;"
Set bancosql = New Recordset bancosql.Open "select * from " & nArquivo, db, adOpenStatic, adLockOptimistic PrimeiroCampoDaTabela = bancosql.Fieldname
... Não quero que ele exiba o conteúdo mais sim o nome do campo na tabela...
Socorrooooo.....
Obrigado!!!!
|
|
|
|
Jose.Niz
|
CURITIBA PR - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 03/04/2007 01:50 hs
Use a propriedade "name" da coleção Fields, quando não é informado nada a propriedade padrão é "value" (retornando o valor do campo).
For i = 0 To bancosql.Fields.Count -1 MsgBox bancosql.Fields(i).Name Next i
PS: Isso funciona com o ADO, com DBF nunca testei.
|
|
|
|
Postada em 03/04/2007 01:52 hs
PrimeiroCampoDaTabela = BancoSql.Fields(0).Name 'primeiro campo da tabela pra te facilitar faça um for: for i = 0 to BancoSql.Fields.Count -1 'seu código... next qq dúvida postae falows!
|
|
|
|
Postada em 03/04/2007 01:54 hs
Use a propriedade "name" da coleção Fields, quando não é informado nada a propriedade padrão é "value" (retornando o valor do campo).
For i = 0 To bancosql.Fields.Count -1 MsgBox bancosql.Fields(i).Name Next i
PS: Isso funciona com o ADO, com DBF nunca testei.
|
|
|
|
Postada em 03/04/2007 13:27 hs
Obrigado pela dica... Para complementar esse código para quem precisar... Dim vConteudo As String Dim vCampo As String Dim I As Integer Dim IX As Integer nArquivo = TabSQL
Set bancosql = New Recordset bancosql.Open "select * from " & nArquivo, db, adOpenStatic, adLockOptimistic Set Dbfs = OpenDatabase(App.Path, False, False, "DBASE IV") Set dbfbanco = Dbfs.OpenRecordset(nArquivo, dbOpenTable) MsgBox "Quantidade de Registros: " & dbfbanco.RecordCount - 1 vCampo = bancosql.Fields(1).Name Campo(0) = bancosql.Fields(0).Name For I = 2 To bancosql.Fields.Count - 1 vCampo = vCampo & "," & bancosql.Fields(I).Name Campo(I - 1) = vCampo & "," & bancosql.Fields(I - 1).Name Next I
For I = 1 To dbfbanco.RecordCount - 1 vConteudo = "'" & dbfbanco.Fields(dbfbanco.Fields(1).Name) & "'" For IX = 2 To dbfbanco.Fields.Count - 1 FieldType (dbfbanco.Fields(IX).Type) vConteudo = vConteudo & "," & xTipo & dbfbanco.Fields(dbfbanco.Fields(IX).Name) & xTipo Next IX Set bancosql = New adodb.Recordset insertsql = "insert into " & nArquivo & " (" & vCampo & ") values (" & vConteudo & ");" bancosql.Open insertsql, db, adOpenStatic, adLockOptimistic Next I End Sub Function FieldType(intType As Integer) As String
Select Case intType Case dbBoolean 'FieldType = "dbBoolean" xTipo = "'" Case dbByte 'FieldType = "dbByte" xTipo = "'" Case dbInteger 'FieldType = "dbInteger" xTipo = "'" Case dbLong 'FieldType = "dbLong" xTipo = "'" Case dbCurrency 'FieldType = "dbCurrency" xTipo = "'" Case dbSingle 'FieldType = "dbSingle" xTipo = "'" Case dbDouble 'FieldType = "dbDouble" xTipo = "'" Case dbDate 'FieldType = "dbDate" xTipo = "'" Case dbText 'FieldType = "dbText" xTipo = "'" Case dbLongBinary 'FieldType = "dbLongBinary" xTipo = "'" Case dbMemo 'FieldType = "dbMemo" xTipo = "'" Case dbGUID 'FieldType = "dbGUID" xTipo = "'" End Select End Sub
|
|
|