Bug #33130 MyODBC / ADO reading connection.property: Special Characters causes crash
| Submitted: | 11 Dec 2007 7:05 | Modified: | 10 Jan 2008 9:30 |
|---|---|---|---|
| Reporter: | Erica Moss | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / ODBC | Severity: | S2 (Serious) |
| Version: | 5.1.0 | OS: | Windows (xp sp2) |
| Assigned to: | Jim Winstead | CPU Architecture: | Any |
| Tags: | ADO | ||
[11 Dec 2007 7:08]
Erica Moss
ODBC Trace
Attachment: SQL.LOG (application/octet-stream, text), 47.12 KiB.
[11 Dec 2007 16:47]
Jim Winstead
driver odbc version (SQL_DRIVER_ODBC_VER) should be 03.51, that's the version of the odbc api that is implemented by the driver. there's another property to get the driver version itself (SQL_DRIVER_VER).
[11 Dec 2007 17:47]
Jim Winstead
the problem is probably that the list of special characters is hardcoded as a latin1 string, but it may not be converted properly.
[31 Dec 2007 21:11]
Jess Balint
The doc says that this should contain any characters besides alpha-numeric characters that are allowed in an identifier name. If one of these character is included, the identifier must be "delimited".
I don't think there's any reason that characters above 0x7f (for latin1) or any other characters besides what we already have should be included. I think we should just use: " !\"#$%&'()*+,-.:;<=>?@[\\]^`{|}~"
[2 Jan 2008 22:13]
Jim Winstead
Remove latin1 chars and $ (no quoting required) from SQL_SPECIAL_CHARACTERS
Attachment: bug33130.patch (text/plain), 1.06 KiB.
[3 Jan 2008 22:08]
Jim Winstead
The fix for this bug was committed, and will be in 5.1.2.
[10 Jan 2008 9:30]
MC Brown
A note has been added to the 5.1.2 changelog: SQLGetInfo() reported characters for SQL_SPECIAL_CHARACTERS that were not encoded correctly.
[15 Jan 2008 16:09]
Jess Balint
Bug#33875 was marked as a duplicate of this.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.043 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: There are two problems found in the collection properties collection: First property 62: "Driver ODBC Version" incorrectly reports the value "03.51" Second property 64: "Special Characters" If the value of this property is read, the invoking program will crash. A test case for this bug has been committed to the ADO Compliance Tests Bug directory. An ODBC Trace is attached How to repeat: Sub Test() On Error Resume Next Dim strSQL, oConn, prop, bPass bPass = cBool(False) Set oConn = CreateObject("ADODB.Connection") ' open connection oConn.ConnectionString = connstr oConn.CursorLocation = adUseServer oConn.Open For Each prop In oConn.Properties If prop.name = "Driver ODBC Version" then Assert.Trace prop.Value Elseif prop.Name = "Special Characters" Then Assert.Trace prop.Value End If Next End Sub