I
IsAvailable
Есть источник данных lotusdb
СУБД - MS SQL
В этом источнике есть база lotusdb
В этой базе - таблица t2 с полями a1(int) a2(varchar)
Прочитать данные из таблицы получается без проблем, а вот внести изменения - нет (
Вроде бы и автокиммит включаю... И "насильно" коммит вызываю.
Но данные остаются прежними.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vb'>Sub Click(Source As Button)
Dim retcode As Integer
Dim datasource As String
Dim username As String
Dim userpass As String
Dim odbccon As ODBCConnection
Dim i As Integer
Dim j As Integer
datasource = "lotusdb"
username = "tester"
userpass = "12345"
Set odbccon = New odbcconnection
Print "LSO LSX Version: " & odbccon.getLSDOMasterRevision
'================= подключаемся к базе
retcode = odbccon.ConnectTo(datasource,username,userpass)
If retcode Then
Print "ODBC connection to " & datasource & " opened."
Else
Messagebox "the ODBC connection could not be established. Exiting."
Messagebox "error number " & odbccon.GetError & Chr(13) & "error message: " & odbccon.GetExtendedErrorMessage
Exit Sub
End If
'======
Dim sqlquery As New ODBCQuery
Dim thesql As String
thesql = "select a1, a2 from t2"
Set sqlquery.Connection = odbccon
sqlquery.SQL = thesql
'================= выполняем запрос
Dim resultset As New ODBCResultSet
Set resultset .Query = sqlquery
Call resultset.Execute
'======
If resultset.GetError <> DBstsSUCCESS Then
Messagebox "Ошибка при выполнении запроса!!!"
Exit Sub
Else
'================= обрабатываем итоги запроса
odbccon.AutoCommit = True
Call resultset.LastRow
Messagebox Cstr(resultset.NumRows)
Call resultset.FirstRow
For i=1 To resultset.NumRows
msg$ = ""
For j=1 To resultset.NumColumns
msg$ = msg$ & resultset.GetValue(j) & " "
Next
Call resultset.NextRow
Messagebox msg$
Next
Call resultset.FirstRow
Call resultset.SetValue(2,"trrrr")
Call odbccon.CommitTransactions
For i=1 To resultset.NumRows
msg$ = ""
For j=1 To resultset.NumColumns
msg$ = msg$ & resultset.GetValue(j) & " "
Next
Call resultset.NextRow
Messagebox msg$
Next
Call odbccon.CommitTransactions
Call odbccon.Disconnect
'======
End If
End Sub[/CODE]Может, кто подскажет, что я не так делаю? И как сделать правильно?
СУБД - MS SQL
В этом источнике есть база lotusdb
В этой базе - таблица t2 с полями a1(int) a2(varchar)
Прочитать данные из таблицы получается без проблем, а вот внести изменения - нет (
Вроде бы и автокиммит включаю... И "насильно" коммит вызываю.
Но данные остаются прежними.
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='vb'>Sub Click(Source As Button)
Dim retcode As Integer
Dim datasource As String
Dim username As String
Dim userpass As String
Dim odbccon As ODBCConnection
Dim i As Integer
Dim j As Integer
datasource = "lotusdb"
username = "tester"
userpass = "12345"
Set odbccon = New odbcconnection
Print "LSO LSX Version: " & odbccon.getLSDOMasterRevision
'================= подключаемся к базе
retcode = odbccon.ConnectTo(datasource,username,userpass)
If retcode Then
Print "ODBC connection to " & datasource & " opened."
Else
Messagebox "the ODBC connection could not be established. Exiting."
Messagebox "error number " & odbccon.GetError & Chr(13) & "error message: " & odbccon.GetExtendedErrorMessage
Exit Sub
End If
'======
Dim sqlquery As New ODBCQuery
Dim thesql As String
thesql = "select a1, a2 from t2"
Set sqlquery.Connection = odbccon
sqlquery.SQL = thesql
'================= выполняем запрос
Dim resultset As New ODBCResultSet
Set resultset .Query = sqlquery
Call resultset.Execute
'======
If resultset.GetError <> DBstsSUCCESS Then
Messagebox "Ошибка при выполнении запроса!!!"
Exit Sub
Else
'================= обрабатываем итоги запроса
odbccon.AutoCommit = True
Call resultset.LastRow
Messagebox Cstr(resultset.NumRows)
Call resultset.FirstRow
For i=1 To resultset.NumRows
msg$ = ""
For j=1 To resultset.NumColumns
msg$ = msg$ & resultset.GetValue(j) & " "
Next
Call resultset.NextRow
Messagebox msg$
Next
Call resultset.FirstRow
Call resultset.SetValue(2,"trrrr")
Call odbccon.CommitTransactions
For i=1 To resultset.NumRows
msg$ = ""
For j=1 To resultset.NumColumns
msg$ = msg$ & resultset.GetValue(j) & " "
Next
Call resultset.NextRow
Messagebox msg$
Next
Call odbccon.CommitTransactions
Call odbccon.Disconnect
'======
End If
End Sub[/CODE]Может, кто подскажет, что я не так делаю? И как сделать правильно?