BUG: Cannot Do Inserts to Oracle Tables With Mixed Case Column NameID: Q198858
|
When trying to do an insert to an Oracle table, you receive the following error message:
Invalid Column Name
The SourceColumn Property of rdoColumns is bringing back the incorrect column name. It does not place the quotes around the column name as specified in the statement:
cn.Execute "CREATE TABLE mixed(""Col1"" varchar(20))"This statement specifies quotes around Col1. In Oracle, this creates a column name "Col1."
Before trying the Insert, change the SourceColumn property to add the quotes around the column name. For example:
rs.rdoColumns(0).SourceColumn = """Col1"""
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.
Dim cn As New rdoConnection
Dim rs As rdoResultset
Dim q As rdoQuery
Dim strConnect As String
strConnect = "dsn=orac;UID=pss;PWD=pss"
cn.Connect = strConnect
cn.CursorDriver = rdUseClientBatch
cn.EstablishConnection
'uncomment below line after mixed table created
' cn.Execute "DROP TABLE mixed"
cn.Execute "CREATE TABLE mixed(""Col1"" varchar(20))"
Set q = cn.CreateQuery("bob", "SELECT * FROM mixed")
Set rs = q.OpenResultset(rdOpenKeyset, rdConcurLock)
'rs.rdoColumns(0).SourceColumn = """Col1"""
rs.AddNew
rs(0) = "alfka"
rs.Update
rs.BatchUpdate
rs.Requery
Debug.Print rs(0).Value
Result: You will receive the "Invalid Column name" error.
If you uncomment the SourceColumn line, the code will work.
Additional query words:
Keywords : kbOracle kbRDO kbRDO200bug kbVBp500bug kbVBp600bug
Version : WINDOWS:5.0,6.0
Platform : WINDOWS
Issue type : kbbug
Last Reviewed: February 3, 1999