Здравствуйте! Сегодня: Вс, 20 Авг 2017, Ваш IP: 54.196.74.153 Войти через loginza
 
Вход | Регистрация | Забыли пароль?
Мой Kbyte.Ru
> Список форумов Kbyte.Ru - - Базы данных
+ Создать новую тему Страница: 1
Тема: VBS+SQL+TiaPortal_Wincc13 · +  +  дата добавления: 21.10.2016 / 16:58
Автор темы:
frantic9966
frantic9966
тем: 1 / ответов: 0 / благодарностей: 0 / репутация: 0
ответов: 0
создал(а) тем: 1


Господа, всем доброго времени суток. Имеется скрипт:
Sub S07_Show_all_entries_of_a_table(ByRef Database_Name)
'////////////////////////////////////////////////////////////////
' en: The script reads the indicated data record
' de: Das Skript liest den angegebene Datensatz
' Created: 19-07-2012
' Version: v1.0
' Author: HH
'////////////////////////////////////////////////////////////////

'Declaration of local tags - Deklaration von lokalem Variablen
Dim conn, rst, SQL_Table, i, j

On Error Resume Next

Set conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")

'Open data source - Datenquelle offnen
conn.Open "Provider=MSDASQL;Initial Catalog=" & SmartTags("szDatabase") & ";DSN="&Database_Name&"" 'DSN= name of the odbc database - DSN= Name der ODBC-Datenbank

'Error routine - Fehlerroutine
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
Err.Clear
Set conn = Nothing
Exit Sub
End If


'Select all entries of a table - Alle Eintrage der Tabelle selektieren
SQL_Table = "SELECT * FROM " & SmartTags("szTableName")

'Execute - Ausfuhren
Set rst = conn.Execute(SQL_Table)

'Order the table by the first column - Tabelle nach der ersten Spalte sortieren
SQL_Table = "SELECT * FROM " & SmartTags("szTableName") & " ORDER By " & rst.Fields(0).Name '* = Alle Daten ' * = all data

'Execute - Ausfuhren
Set rst = conn.Execute(SQL_Table)

'Error routine - Fehler Routine
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & Err.Number & " " & Err.Description
Err.Clear
'Close data source - Datenquelle schlie?en
conn.close
Set conn = Nothing
Set rst = Nothing
Exit Sub
End If

If Not (rst.EOF And rst.BOF) Then
'Vergleich ob "End of File" oder "Begin of File" ist, wenn nicht wird der Zeiger auf den Ersten Eintrag zurueckgesetzt
'Compare if "End of File" or "Begin of File" exists, if not the pointer will be reset to the first entry

rst.MoveFirst 'reset to 1st entry - auf 1. Eintrag zuruecksetzen

'Definition of local tags - Definiton von loklen Variablen
j=0

'Amount of the entries in the table - Anzahl der Tabelleneintrage
Do
j=j+1
rst.MoveNext
Loop Until rst.EOF

rst.MoveFirst 'reset to 1st entry - auf 1. Eintrag zuruecksetzen Do

'Selection with Arrow Buttons - Auswahl mit den Pfeil-Tasten
If SmartTags("nTab")>=j-6 Then
SmartTags("nTab")=j-6
End If
If SmartTags("nTab")<j-5 Then
For i=1 To SmartTags("nTab")
rst.MoveNext
Next
End If
If SmartTags("nTab")<0 Then
SmartTags("nTab")=0
End If

'Name of the columns - Name der Spalten
SmartTags("szName_1") = rst.Fields(1).Name
SmartTags("szName_2") = rst.Fields(2).Name
SmartTags("szName_3") = rst.Fields(3).Name

For i=1 To 6
'Entries of the table - Eintrage in die Tabelle
If rst.EOF Then
SmartTags("Value_" & i & "_0") = 0
SmartTags("Value_" & i & "_1") = 0
SmartTags("Value_" & i & "_2") = 0
SmartTags("Value_" & i & "_3") = 0
Else
SmartTags("Value_" & i & "_0") = rst.Fields(0).Value
SmartTags("Value_" & i & "_1") = rst.Fields(1).Value
SmartTags("Value_" & i & "_2") = rst.Fields(2).Value
SmartTags("Value_" & i & "_3") = rst.Fields(3).Value
rst.MoveNext
End If
Next

rst.close
Else
ShowSystemAlarm "No entries are available."
End If

'Close data source - Datenquelle schlie?en
conn.close

Set rst = Nothing
Set conn = Nothing

End Sub


Так вот если закоментить строку Set rst = CreateObject("ADODB.Recordset"), то код будет работать но не пойму почему так как согласно данной ссылке(http://www.script-coding.com/ADO.html) методы Move и EOF без создания объекта Recordset работать не могут, т.е. бейсик по идее не должен знать что это такое Move и EOF или я что-то не так понимаю?
Технологии: MySQL, VBScript
 

Нет ответов в этой теме...

Страница: 1 + Создать новую тему