在linux框上运行vb脚本

时间:2012-06-05 14:36:31

标签: linux

这对我来说是新的,请耐心等待我!

我有一种情况,我们在网站上有一个表单,它收集数据并将其发送到Web服务器上的mySQL表。该信息从web服务器发送到linux盒子上的mySQL表,我相信通过linux盒子上的某种导入脚本。

上周我们的linux服务器挂断了,现在导入脚本无法运行。我有一个import.txt文件,我需要重启(我相信),但我不知道该怎么做。

我在网上研究过,但我只看到有关.sh文件的信息。

谢谢!

如果有帮助,这就是我需要运行的内容:

Public Sub ImportPubOrders()
Dim rsCopy1 As Recordset, rsCopy2 As Recordset, rsCopy3 As Recordset
Dim strSQL As String, strCriteria As String, strODBCdate As String
Dim lngFound As Long
On Error GoTo ErrorHandler

Set wrkODBC = CreateWorkspace("ODBCWorkSpace", "pubadmin", "Abo1prA5", dbUseODBC)
Set MySQLConn = wrkODBC.OpenConnection("ODBC;DSN=publications;DESC=MySQL ODBC 3.51 Driver DSN;DATABASE=publications;SERVER=10.116.11.2;UID=pubadmin;PASSWORD=Abo1prA5;PORT=3306;OPTION=3;STMT=;")
MySQLConn.QueryTimeout = 180

strODBCdate = Format(DateAdd("d", -1, Date), "yyyy-mm-dd")
'strODBCdate = "2009-03-11"

'Copy records from More.net PRO to DBSRVR
Set OAwrkODBC = CreateWorkspace("ODBCWorkSpace", "sslAGOmySQL", "k4-4js94nd", dbUseODBC)
Set OAMySQLConn = OAwrkODBC.OpenConnection("ODBC;DSN=OA_generalPRO;DESC=MySQL ODBC 3.51 Driver DSN;DATABASE=www_ago_mo_gov_ssl_data;SERVER=db.kinetic.more.net;UID=sslAGOmySQL;PASSWORD=k4-4js94nd;PORT=3306;OPTION=3;STMT=;")

strSQL = "LOCK TABLE orders_contacts READ, orders_ids READ, orders_items READ, orders_order READ"
OAMySQLConn.Execute (strSQL)

    'Check if there are orders to download
    strCriteria = "DATE_FORMAT(orders_order.order_date, '%Y-%m-%d') = " & Chr(34) & strODBCdate & Chr(34)
    strSQL = "SELECT form_id FROM orders_order WHERE " & strCriteria
    OAMySQLConn.Execute (strSQL)
    lngFound = OAMySQLConn.RecordsAffected

    'Orders have been submitted and need to be downloaded
    If lngFound >= 1 Then
        strSQL = "SELECT form_id, contact_id, DATE_FORMAT(order_date, '%Y-%m-%d %T') AS order_date FROM orders_order WHERE " & strCriteria
        Set rsCopy1 = OAMySQLConn.OpenRecordset(strSQL)
        Do While Not rsCopy1.EOF
            strSQL = "INSERT INTO orders_order (form_id, contact_id, order_date) " & _
                "VALUES (" & rsCopy1!form_id & ", " & rsCopy1!contact_id & ", " & Chr(34) & rsCopy1!order_date & Chr(34) & ")"
            MySQLConn.Execute (strSQL)
            rsCopy1.MoveNext
        Loop
        rsCopy1.Close

        strSQL = "SELECT item_id, orders_items.form_id, pub_name, quantity " & _
            "FROM orders_items INNER JOIN orders_order ON orders_items.form_id = orders_order.form_id " & _
            "WHERE " & strCriteria
        Set rsCopy2 = OAMySQLConn.OpenRecordset(strSQL)
        Do While Not rsCopy2.EOF
            strSQL = "INSERT INTO orders_items (item_id, form_id, pub_name, quantity) " & _
                "VALUES (" & rsCopy2!item_id & ", " & rsCopy2!form_id & ", " & Chr(34) & rsCopy2!pub_name & Chr(34) & ", " & rsCopy2!quantity & ")"
            MySQLConn.Execute (strSQL)
            rsCopy2.MoveNext
        Loop
        rsCopy2.Close

        strSQL = "SELECT orders_contacts.contact_id, orders_contacts.form_id, org_name, first_name, last_name, address1, address2, city, state, " & _
            "zip, email, phone, DATE_FORMAT(date_added, '%Y-%m-%d %T') AS date_added " & _
            "FROM orders_contacts INNER JOIN orders_order ON orders_contacts.contact_id = orders_order.contact_id " & _
            "WHERE " & strCriteria
        Set rsCopy3 = OAMySQLConn.OpenRecordset(strSQL)
        Do While Not rsCopy3.EOF
            strSQL = "INSERT INTO orders_contacts (contact_id, form_id, org_name, first_name, last_name, address1, " & _
                "address2, city, state, zip, email, phone, date_added) " & _
                "VALUES (" & rsCopy3!contact_id & ", " & rsCopy3!form_id & ", " & Chr(34) & rsCopy3!org_name & Chr(34) & _
                ", " & Chr(34) & rsCopy3!first_name & Chr(34) & ", " & Chr(34) & rsCopy3!last_name & Chr(34) & _
                ", " & Chr(34) & rsCopy3!address1 & Chr(34) & ", " & Chr(34) & rsCopy3!address2 & Chr(34) & _
                ", " & Chr(34) & rsCopy3!city & Chr(34) & ", " & Chr(34) & rsCopy3!state & Chr(34) & _
                ", " & Chr(34) & rsCopy3!zip & Chr(34) & ", " & Chr(34) & rsCopy3!email & Chr(34) & _
                ", " & Chr(34) & rsCopy3!phone & Chr(34) & ", " & Chr(34) & rsCopy3!date_added & Chr(34) & ")"
            MySQLConn.Execute (strSQL)
            rsCopy3.MoveNext
        Loop
        rsCopy3.Close

    Else
        DoCmd.Hourglass False
        Dim RS0 As Recordset
        Set RS0 = CurrentDb.OpenRecordset("log_Errors")
        RS0.AddNew
            RS0("error_loc") = "ZERO publication orders submitted online for " & strODBCdate
            RS0("error_time") = Now()
        RS0.Update
        RS0.Close
        Set RS0 = Nothing
    End If

strSQL = "UNLOCK TABLES"
OAMySQLConn.Execute (strSQL)

DoCmd.Hourglass False

Dim RS10 As Recordset
Set RS10 = CurrentDb.OpenRecordset("log_Errors")
RS10.AddNew
    RS10("error_loc") = "Import publications completed without error"
    RS10("error_time") = Now()
RS10.Update
RS10.Close
Set RS10 = Nothing

DoCmd.SetWarnings True
Exit Sub

ErrorHandler:
DoCmd.Hourglass False
    Dim RS2 As Recordset
    Set RS2 = CurrentDb.OpenRecordset("log_Errors")
    RS2.AddNew
        RS2("error_loc") = "procedure ImportPubOrders"
        RS2("error_num") = Err.Number
        RS2("error_desc") = Err.Description
        RS2("error_time") = Now()
    RS2.Update
    RS2.Close
    Set RS2 = Nothing

Set rsCopy1 = Nothing
Set rsCopy2 = Nothing
Set rsCopy3 = Nothing
DoCmd.SetWarnings True

End Sub

2 个答案:

答案 0 :(得分:0)

你必须使用第三方库,因为linux不支持VBScript。你确定它有.txt扩展名吗?如果是这样的话,VBScript是什么?

答案 1 :(得分:0)

这是Visual Basic。 VBScript不支持“On Error GoTo [label]”语句。

相关问题