Bug #12805 ADO failed to retrieve the length of LONGBLOB columns
| Submitted: | 25 Aug 2005 14:02 | Modified: | 4 Jul 2008 14:38 |
|---|---|---|---|
| Reporter: | Bogdan Degtyariov | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / ODBC | Severity: | S2 (Serious) |
| Version: | 3.51.11, 3.51.19GA | OS: | Windows (Windows XP) |
| Assigned to: | Bogdan Degtyariov | CPU Architecture: | Any |
[8 Sep 2005 7:57]
Bogdan Degtyariov
The most probably it's not MyODBC bug because abovementioned VB.NET fragment works well with MySQL Server 5.0.7. and earlier versions. On other hand versions 5.0.10/5.0.11/5.0.12 have this problem
[24 Jul 2007 16:21]
Bogdan Degtyariov
Verified against MyODBC 3.51.16/3.51.17 and MySQL 5.0.45
[27 Jul 2007 23:18]
Jim Winstead
Bug #13481 may be a duplicate of this bug.
[27 Aug 2007 11:37]
Tonci Grgin
Still a bug.
[31 Jan 2008 23:01]
Jim Winstead
Needs to be re-verified with 3.51 and 5.1, and Bogdan reportedly has a preliminary fix.
[4 Feb 2008 18:51]
Bogdan Degtyariov
patch and test case
Attachment: patch12805.diff (application/octet-stream, text), 3.20 KiB.
[4 Feb 2008 18:52]
Bogdan Degtyariov
LONGBLOB length is reported as 4G, however ADO as other Microsoft applications do not support more than 2G.
[4 Feb 2008 20:10]
Jim Winstead
I think that Jess's fix for Bug #30890 in 5.1 may have fixed this in that tree.
[7 Feb 2008 15:28]
Bogdan Degtyariov
patch and test case (with SET_DSN_OPTION etc.)
Attachment: patch12805_v2.diff (application/octet-stream, text), 2.62 KiB.
[7 Feb 2008 20:46]
Bogdan Degtyariov
Patch with unsigned types for get_column_size()
Attachment: patch12805_v3.diff (application/octet-stream, text), 5.11 KiB.
[11 Feb 2008 16:49]
Bogdan Degtyariov
Modified SQLULEN and other stuff related to column sizes
Attachment: patch12805_v5.diff (application/octet-stream, text), 7.06 KiB.
[14 Feb 2008 16:32]
MC Brown
A note has been added to the 5.1.2 changelog: When accessing column data, FLAG_COLUMN_SIZE_S32 did not limi the octet length or display size reported for fields, causing problems with Microsoft Visual FoxPro.
[7 Mar 2008 18:31]
Bogdan Degtyariov
Below is the list of ODBC functions that may cause failures in MS software when retrieving the length of LONGBLOB/LONGTEXT columns: * SQLColumns * SQLColAttribute * SQLColAttributes * SQLDescribeCol * SQLSpecialColumns (theoretically can have the same problem)
[11 Mar 2008 22:58]
Bogdan Degtyariov
Final version of the patch
Attachment: patch12805_v8.diff (application/octet-stream, text), 7.82 KiB.
[11 Mar 2008 23:00]
Bogdan Degtyariov
Please review the final version of the patch.
[12 Mar 2008 11:01]
Bogdan Degtyariov
updated patch
Attachment: patch12805_v9.diff (application/octet-stream, text), 7.82 KiB.
[12 Mar 2008 13:27]
Bogdan Degtyariov
patch!
Attachment: patch12805_v10.diff (application/octet-stream, text), 7.81 KiB.
[20 Mar 2008 18:20]
Bogdan Degtyariov
SQLColAttribute returns SQLLEN to avoid compatibility issues with iODBC/unixODBC
Attachment: patch12805_v11.diff (application/octet-stream, text), 8.49 KiB.
[14 Apr 2008 22:07]
Jim Winstead
The patch for this bug was committed, and will be included in 3.51.25.
[4 Jul 2008 14:38]
Tony Bedford
An entry has been added to the 3.51.25 changelog.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.079 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: VB.NET Can't get column count property if table contain LONG_BLOB fields How to repeat: Here is a code that shows the problem: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '.Net , ADO 2.6 On Error GoTo TestMySQL4_Error Dim CatalogADO As ADOX.Catalog Dim cnTest As ADODB.Connection Dim strSQL As String, strConnect As String, strTableName As String Dim lTableCols As Long Dim iTablePos As Integer ' 'CREATE DATABASE test' run from MySql client if needed 'Testing data ' Drivers ' MySQL Connector/ODBC v5 ' 5.00.00 00 ' MySQL ODBC 3.51 Driver ' 3.51.11 00 ' Servers ' SuSE Linux Enterprise Server 9 ' MySQL 5.0.03-beta-standard-log via TCP/IP (172.16.100.35 / kellyc / Chimo1!) ' RedHat Enterprise Linux 4 ES ' MySQL 5.0.11-beta-standard-log via TCP/IP (172.16.100.30 / CIS / ppdata) strConnect = "Provider=MSDASQL;" & _ " DRIVER=MySQL ODBC 3.51 Driver;" & _ " SERVER=192.168.0.2;" & _ " DATABASE=test;" & _ " UID=CIS; PWD=ppdata;" & _ " OPTION=3" 'Open ADODB connection cnTest = New ADODB.Connection cnTest.Mode = ADODB.ConnectModeEnum.adModeReadWrite cnTest.CommandTimeout = 10000 cnTest.ConnectionTimeout = 20 cnTest.Open(strConnect) 'create table strTableName = "TestTable" strSQL = "`SystemID` INT NOT NULL" & _ ", `LongImageData` LONGBLOB NULL" strSQL = "CREATE TABLE `" & strTableName & "` (" & strSQL & ") ENGINE=MyISAM" cnTest.Execute(strSQL) 'Open Catalog for Database TEST CatalogADO = New ADOX.Catalog CatalogADO.ActiveConnection = cnTest CatalogADO.Tables.Refresh() 'find table For iTablePos = CatalogADO.Tables.Count - 1 To 0 Step -1 If UCase$(CatalogADO.Tables(iTablePos).Name) = UCase$(strTableName) Then Exit For Next 'Try to get count of fields in table 'Err.Number = 6, Err.Source=Interop.ADOX, Err.Description=Out of present range Dim adoxTab As ADOX.Table adoxTab = CatalogADO.Tables(iTablePos) Dim adoxColumns As ADOX.Columns adoxColumns = adoxTab.Columns lTableCols = adoxColumns.Count 'It will error on this line 'Close CatalogADO.ActiveConnection = Nothing CatalogADO = Nothing cnTest.Close() : cnTest = Nothing Exit Sub TestMySQL4_Error: MsgBox("Error #" & Format$(Err.Number) & vbCrLf & "Error Source:" & Err.Source & vbCrLf & "Error Desc:" & Err.Description) Resume Next End Resume End Sub