OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

VB & SQLサーバ

  • すぐに回答を!
  • 質問No.215722
  • 閲覧数131
  • ありがとう数2
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 16% (41/243)

ADOにて接続してます。
ロールバックがうまくできずに困っています。
試してみたのですが、エラーが発生し、処理できませんでした。
それに
テーブルの列名を取得する方法も探しています。
ご存知の方いらっしゃいましたらご教授ください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

サンプルです。 ※funcUpdate関数 BeginTransはしていましたか? もし同じ処理を行っているのであれば、そちらの不具合の出ているソースを見せてください。 ※getTableColumn関数 参照設定で Microsoft ADO Ext. x.x for DDL and Srcurity を指定しなければいけません。 Sub funcUpdate()    ...続きを読む
サンプルです。

※funcUpdate関数
BeginTransはしていましたか?
もし同じ処理を行っているのであれば、そちらの不具合の出ているソースを見せてください。

※getTableColumn関数
参照設定で
Microsoft ADO Ext. x.x for DDL and Srcurity
を指定しなければいけません。


Sub funcUpdate()
  Dim adoCnn As ADODB.Connection
  Dim strSQL As String
  
  ' 接続を確立する
  Set adoCnn = New ADODB.Connection
  adoCnn.Open "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;", "sa", ""
  
  '新規トランザクションを開始
  adoCnn.BeginTrans
  
  'レコードに何らかの変更を加えるSQL文を実行する
  strSQL = "insert into table1 (test1,test2) values ('あ','い')"
  adoCnn.Execute strSQL
  
  If MsgBox("変更を行いますか?", vbOKCancel) = vbOK Then
    '変更をすべて保存
    adoCnn.CommitTrans
  Else
    'カレント トランザクションで行った変更内容をすべてキャンセルしてトランザクションを終了
    adoCnn.RollbackTrans
  End If
  
  '開放
  adoCnn.Close
  Set adoCnn = Nothing
End Sub

Sub getTableColumn()
  Dim adoCnn As ADODB.Connection
  Dim adoRec As ADODB.Recordset
  Dim adoxCat As ADOX.Catalog
  Dim adoxTbl As ADOX.Table
  Dim adoxClm As ADOX.Column
  
  ' 接続を確立する
  Set adoCnn = New ADODB.Connection
  adoCnn.Open "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;", "sa", ""

  'カタログにセット
  Set adoxCat = New ADOX.Catalog
  adoxCat.ActiveConnection = adoCnn
  
  'テーブルループ
  For Each adoxTbl In adoxCat.Tables
    Debug.Print "******************************"
    Debug.Print "テーブル[" & adoxTbl.Name & "]"
    
    'カラムループ
    For Each adoxClm In adoxTbl.Columns
      Debug.Print "   " & adoxClm.Name
    Next adoxClm
    
    Debug.Print "******************************"
    Debug.Print
  Next adoxTbl
    
  '開放
  adoCnn.Close
  Set adoxCat = Nothing
  Set adoCnn = Nothing
End Sub


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ