| |
VB & Datenbankenvia DAO Textdateien auslesen | | | Autor: abudde | Datum: 07.10.06 07:50 |
| Hallo,
ich möchte mit DAO eine Textdatei auslesen und anschließend in eine MS-SQL-Server-Tabelle speichern. Das klappt auch soweit ohne Probleme.
Wenn in der Textdatei jedoch eine größere Zahl steht, so steht diese gleich im Recordset als Exponentialzahl drinnen.
Folgendes Programm habe ich:
Option Explicit
Dim oDAOdb As DAO.Database
Dim oDAOrs As DAO.Recordset
Sub main()
Set oDAOdb = OpenDatabase("c:\temp\MyDirectory", False, True, "Text;")
Set oDAOrs = oDAOdb.OpenRecordset("test.txt", dbOpenDynaset)
Do While Not oDAOrs.EOF
MsgBox oDAOrs.Fields(0).Value
oDAOrs.MoveNext
Loop
End Sub
Die Datei test.txt hat folgenden Inhalt:
testfeld
8949226061193055019
Im Recordset steht anschließend (oDAOrs.Fields(0).Value) 8,94922606119306E+18
Ich verwende die MS DAO 3.6 Object Library.
Wie kann ich das verhindern?
Gut zu wissen wäre auch, wie ich gleich auf andere Datentypen (z. B. Datum, Float etc.) beim Einlesen reagieren könnte.
Vielen Dank für Eure Mühe!
André | |
Re: via DAO Textdateien auslesen | | | Autor: Prian0815 | Datum: 09.10.06 16:15 |
| 1. In was für einen Feldtyp speicherst du denn den Wert?
2. Wie willst du weshalb in welchem Fall reagieren? n bischen mehr Info wär echt nich ohne.
Gruß Armin
P.S.: always look on the bright side of Life! | |
Re: via DAO Textdateien auslesen | | | Autor: abudde | Datum: 13.10.06 15:17 |
| Hallo Armin,
1. bis zum Speichern komme ich ja noch gar nicht. Der Wert steht ja schon
"falsch" im Recordset nach dem Einlesen.
Was mir vorschwebt wäre eine Möglichkeit dem Recordset zu "sagen",
dass in Spalte ein bigint (o.ä.) kommt, damit der Wert dann schon korrekt
im Recordset steht.
2. Wenn es soetwas für bigint´s gibt, dann kann man doch sicherlich auch
entsprechend bei float, datetime etc. darauf reagieren.
Gruß André | |
Re: via DAO Textdateien auslesen | | | Autor: Prian0815 | Datum: 16.10.06 15:42 |
| Hi Andre,
Der Datentyp des Recordsets in den du einliest, ergibt sich doch aus der Tabelle der DB, wenn dann musst du schon da ändern. Aber weil ichs gerade sehe, wenn du auf MSSQLSErver DB zugreifst, solltest du das mit ADO und nicht mit DAO tun, vielleicht löst das ja schon dein Prob.
Gruß Armin
P.S.: always look on the bright side of Life! | |
Re: via DAO Textdateien auslesen | | | Autor: Bobbel | Datum: 16.10.06 20:42 |
| abudde schrieb:
Zitat: | | Hallo,
ich möchte mit DAO eine Textdatei auslesen und anschließend
in eine MS-SQL-Server-Tabelle speichern. Das klappt auch
soweit ohne Probleme.
Wenn in der Textdatei jedoch eine größere Zahl steht, so
steht diese gleich im Recordset als Exponentialzahl drinnen.
Folgendes Programm habe ich:
Option Explicit
Dim oDAOdb As DAO.Database
Dim oDAOrs As DAO.Recordset
Sub main()
Set oDAOdb =
OpenDatabase("c:\temp\MyDirectory", False, True,
"Text;")
Set oDAOrs = oDAOdb.OpenRecordset("test.txt",
dbOpenDynaset)
Do While Not oDAOrs.EOF
MsgBox oDAOrs.Fields(0).Value
oDAOrs.MoveNext
Loop
End Sub
Die Datei test.txt hat folgenden Inhalt:
testfeld
8949226061193055019
Im Recordset steht anschließend (oDAOrs.Fields(0).Value)
8,94922606119306E+18
Ich verwende die MS DAO 3.6 Object Library.
Wie kann ich das verhindern?
Gut zu wissen wäre auch, wie ich gleich auf andere Datentypen
(z. B. Datum, Float etc.) beim Einlesen reagieren könnte.
Vielen Dank für Eure Mühe!
André
| |
Wird deine Zahl als ganzes gebraucht oder sind das meherer Zahlen die einfach am Stück in der Datei vorliegen ?
Ansonsten Zeileweise aus der Textdatei einlesen (als String) , Zeile zerlegen und in die entsprechenden Datentypen zerlegen und umwandeln anschliessend an dein RecordSet übergeben. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|