Hilfe! Windows/ODBC

PH

Legendäres Mitglied
Also es gibt einen PC mit Windows 8 und einer Sybase Datenbank drauf.
Der PC läuft permanent, ich habe Zugangsdaten für die Datenbank.

Was ich machen will:
- Täglich eine SQL Abfrage laufen lassen
- Das Resultset in einer Textdatei speichern
- Die Textdatei per FTP in ein Verzeichnis auf meinen Server schieben
- Datei löschen

^^
alles automatisch, versteht sich.

Aus Debian kann ich das machen, auch Windows habe ich keinen blassen schimmer.
Wer kann mir helfen?
 
Kennt sich jemand mit VBScript aus?

Ich habe jetzt folgendes Script in eine .vbs Datei gespeichert, aber wenn ich es ausführe kommt immer die Fehlermeldung "Anweisungsende erwartet, Zeile 8"... Was stimmt da nicht?

CODE On error resume next
Dim data
Dim recordCount
Dim regEx
Set regEx = new RegExp
regEx.Pattern = "\r|\n|,|"""

using System.Data.Odbc;

var con = new OdbcConnection();
con.ConnectionString =
"Driver={SYBASE SYSTEM 11};" +
"Srvr=Server;" +
"Uid=User;" +
"Pwd=Passwort;";
con.Open();

strQry = "SELECT * FROM TABELLE"
set data = con.execute(strQry)

Set filsSysObj = CreateObject("Scripting.FileSystemObject")
Set csvFile = filsSysObj.OpenTextFile("C:\CSVFile.csv", 8, True)

recordCount = data.Fields.Count

do until data.EOF
Separator = ""
for i = 0 to data.Fields.Count - 1
Column = data.Fields( i ).Value & ""
if regEx.Test( Column ) then
Column = """" & Replace( Column, """", """""" ) & """"
end if
csvFile.Write Separator & Column
Separator = ","
next
csvFile.Write vbNewLine
data.MoveNext
loop
 
In VB werden Zeilen nicht mit ; beendet.
Using gibt es auch nicht, stattdessen kann man Imports verwenden:
CODE
Imports System.Data.Odbc


Vermutlich kannst Du die Zeile aber auch komplett weglassen.

Der folgende Abschnitt müsste vermutlich eher so lauten:


CODE Dim con = new OdbcConnection();
con.ConnectionString ="Driver={SYBASE SYSTEM 11};Srvr=Server;Uid=User;Pwd=Passwort;"
con.Open()


Ich habe den einen Teil auf eine Zeile reduziert, da ich aus dem Kopf nicht weiß, wie man in VB-Script einen Befehl über mehrere Zeilen verteilen kann.
Die ; innerhalb des Strings sind richtig, da diese im Connectionstring benötigt werden.

HTH
Alex

 
(Kann man Beiträge eigentlich nicht editieren?)

Ging doch zu schnell vorhin. Der Abschnitt müsste wie folgt lauten:

CODE Dim con
Set con= new OdbcConnection()
con.ConnectionString ="Driver={SYBASE SYSTEM 11};Srvr=Server;Uid=User;Pwd=Passwort;"
con.Open()



HTH
Alex
 
Zurück
Oben