Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/103976

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 11:24, 21 July 2020 by X010 (talk | contribs) (Text replacement - "&" to "&")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Article ID: 103976

Article Last Modified on 1/9/2003


  • Microsoft Visual Basic 3.0 Professional Edition

This article was previously published under Q103976


When you open a database using ODBC and use the Execute method of the Database object or property with the SQL passthrough option (value 64) specified, the error "Invalid argument" (number 3001) incorrectly occurs.


Here are two possible workarounds. Use either one.

  • Use the ExecuteSQL. Its default is DB_SQLPASSTHROUGH:

          i = db.ExecuteSQL("action statement")
  • Use CreateDynaset or CreateSnapshot with the SQL passthrough option to execute an SQL action statement. Then close the resulting recordset object immediately. Here's an example:

          Dim ds As Dynaset
          Set ds = db.CreateDynaset("action statement", SQL_PASSTHROUGH)

    If you are using the data control, specify datacontrol.Database as the database variable as in this example:

          ' Enter the following two lines as one, single line:
          Set ds = Data1.Database.CreateDynaset("action statement",


Microsoft has confirmed this to be a bug in the products listed above. This problem was fixed in the Compatibility Layer (COMLYR.EXE) update.


Steps to Reproduce Problem

The following program results in the incorrect "Invalid argument" error.

   Dim db As Database
   Set db = OpenDatabase("", False, False, "ODBC")
   db.Execute "action statement", DB_SQLPASSTHROUGH

Additional query words: 3.00 buglist3.00 fixlist3.00

Keywords: kbbug kbfix KB103976