Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBScript zum übertragen von .csv in eine Datenbank

Frage Entwicklung VB for Applications

Mitglied: sven1986

sven1986 (Level 1) - Jetzt verbinden

23.03.2007, aktualisiert 26.03.2007, 7451 Aufrufe, 6 Kommentare

Hallo,

ich habe eine .csv Datei mit ca 800 einträgen.
Diese sieht wie folgt aus:

10.10.30.124;0030050f3f5f;INV02905
10.10.30.8;00300537c0b3;in003329
10.10.32.25;000255b262302;INV00792
.
.
.
usw

Wie realisiere ich es per vbscript das jede einzelne zeile gelesen wird und dann per sql insert in eine bestimmte Tabelle geschrieben wird?

Datenbankabrufen, einzelne Werte einfügen usw ist kein problem.

Wie realisiere ich das?

mfg

sven
Mitglied: sven1986
23.03.2007 um 12:21 Uhr
Soweit bin ich bissher gekommen aber ka wie ich weitermachen soll funkt auf jedenfall nicht

'Erstellung eines Objektes

Set objDB = CreateObject("ADODB.Connection")

'Verbindung zur Datenbank und Schema aufbauen.

objDB.ConnectionString = "Provider=MSDAORA; " & _
"Data Source=TST.WORLD; " & _
"User ID=; Password=;"
objDB.Open

' csv Datei öffnen und jede Zeile einzelnd lesen

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("\\in101008\c$\DHCP\Daten.csv", 1)

strSQL = "INSERT INTO dhcpinfo SET IPAdresse, MACadresse, INVnummer VALUES wert1, wert2, wert3"


Do While objFile.AtEndOfStream
strLine = objFile.ReadLine

If inStr(strLine, ";") Then
arrRow = split(strLine, ";")
arrow[1] = Wert1
arrow[2] = Wert2
arrow[3] = Wert3
Set objRS = objDB.Execute(strSQL)
End If
Loop
objFile.Close
Bitte warten ..
Mitglied: Biber
23.03.2007 um 13:57 Uhr
Moin sven1986,

na, Du scheinst Dir griffige und geschmeidige Prozesse überlegt zu haben...
... von Log-Dateien in Excel per VBS, dann nach .csv und von dort per VBS wieder in eine DB... raffiniert.

Ich würde den letzten Schritt mit der VBS-Funktion Split() machen.

01.
'...dein Code bis incl. nächste Zeile 
02.
strLine = objFile.Readline 
03.
MyValue = Split(StrLine, ";", -1, 1) ' Para3 =-1 heißt "alle Werte"  
04.
                                                        ' Para4 =Klein/Grossschreibung bei ";"-Delimiter-Suche beachten ;-) 
05.
strSQL = "INSERT into tabelle (feld1, feld2, feld3, feldx) values (" & MyValue(0) & ", " & MyValue(1) & ", " & MyValue(2) ....." 
06.
.....
Brauchst Du wirklich die Daten in der Excel-Tabelle und in einer DB-Tabelle?

Gruss
Biber
Bitte warten ..
Mitglied: sven1986
23.03.2007 um 14:09 Uhr
Moin

Ich würde es auch anders machen, nur das Problem ist das mir das als Aufgabe gegeben wurde :-P und ich somit nicht drumherum komme.
Soll auch als Übung sein mich in vbscript bisschen einzuarbeiten.
Nur man findet nicht so wirklich gute Beschreibungen wenn es um ein bisschen "komplizierte" Sachen geht ....
Und von Programmieren habe ich auch nicht wirklich die Ahnung. Von daher doppelt schwierig.

mfg

sven
Bitte warten ..
Mitglied: sven1986
26.03.2007 um 07:50 Uhr
Hi Biba,

das Script sieht jetzt mittlerweile so aus:

'Erstellung eines Objektes

Set objDB = CreateObject("ADODB.Connection")

'Verbindung zur Datenbank und Schema aufbauen.

objDB.ConnectionString = "Provider=MSDAORA; " & _
"Data Source=TST.WORLD; " & _
"User ID=; Password=;"
objDB.Open

'csv Datei öffnen

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("\\in101008\c$\DHCP\Daten.csv", 1)

'SQL Befehle zum abrufen und einfügen von Informationen - "Variablen"

'strSQL = "INSERT into dhcpinfo (IPAdresse, MACadresse, INVnummer) values ("MyValue(0)", "MyValue(1)", "MyValue(2)")"
strSQL1 = "select IPAdresse, MACadresse, INVnummer, ID from DHCPINFO ORDER BY ID"
strSQL = "INSERT into dhcpinfo (IPAdresse, MACadresse, INVnummer) values (" & MyValue(0) & ", " & MyValue(1) & ", " & MyValue(2)")"

'Schleife zum einlesen der Datei

Do While objFile.AtEndOfStream 'Schleife durchführen bis Datei zu Ende
strLine = objFile.ReadLine 'Lese eine Zeile
MyValue = Split(StrLine, ";", -1, 1) 'Splitten der gelesenen Zeile bei dem Zeichen ";"

Set EXE = objDB.execute(strSQL) 'SQL Befehl 1 ausführen mit den geteilten Informationen - "Aufruf der Variable"

Loop 'Schleifenende
objFile.Close 'Datei wieder schließen



'Ausgabe der eingelesenen Informationen


Set objRS = objDB.Execute(strSQL1)



'Ausgabe der Datenbank bis zum Ende

While Not objRS.EOF 'Solange Datei nicht zu Ende ist - Ausgabe Zeile für Zeile
strIP = objRS("IPAdresse")
strMAC = objRS("MACadresse")
strINV = objRS("INVnummer")

wscript.echo StrIP & " " & strMAC _
& " " & strINV
objRS.MoveNext
Wend

Nur bei deiner vorher geschriebenen SQl Zeile sagt er Aneisungsende erwartet.
Ich wüsste jetzt nicht woran es liegt.

Das wäre dann auch das letzte.

Wie immer Vielen Dank.

mfg

sven
Bitte warten ..
Mitglied: Biber
26.03.2007 um 08:16 Uhr
Moin sven,

die "Vorbereitung" des jeweiligen SQL-Statements muss ebenfalls in der Lese-die-Textdateizeile-bis-zum-Ende-Loop erfolgen.
sprich: die folgende Zeile
strSQL = "INSERT into dhcpinfo (IPAdresse, MACadresse, INVnummer) values (" & MyValue(0) & ", " & MyValue(1) & ", " & MyValue(2)")"
...gehört verschoben IN die DO WHILE...LOOP und zwar nach die "MyValue=Split(..)"-Zeile.

Dann sollte es eigentlich funktionieren.
Du kannst ja erstmal nach der Zeile mit der Zuweisung "strSQL = "INSERT...." noch mal den Wert der Variablen strSQL anzeigen (wscript.echo "StrSQL : [" & strSQL & "]" )

Gruss Biber
Bitte warten ..
Mitglied: sven1986
26.03.2007 um 09:40 Uhr
Moin,


habe es nach probieren auch endlich mal selber hinbekommen.

Trotzdem Danke

mfg

sven
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Feld mit CSV-Daten aus MySQL-Datenbank einlesen (3)

Frage von Andreas.HH1 zum Thema VB for Applications ...

Datenbanken
Access 2016 vertauscht Monat und Tag in meiner CSV Datei (1)

Frage von iGordon zum Thema Datenbanken ...

Batch & Shell
gelöst Auslesen und Vergleichen Zweiter CSV Dateien Powershell (7)

Frage von Hainoon zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell: ActiveDirectory Infos mit export-csv exportieren und formatieren (2)

Frage von MuHMuH zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...