Hi,
 
I am facing strange problem while accessing a LONGTEXT
field. 
 
I've been using VisualBasic 6.0 & MySQL 4.0.4 via ADO
2.0 by using MyODBC 3.51.04 on WIN2k Server (SP 2).

Pls follow the below steps to generate a bug -->
'/////////////////////////////////////////////////////'
1. Create a Table for testing
'* Script to generate the table and insert a record *'
USE TEST;
CREATE TABLE Testing
(
 ID   INT       NOT NULL AUTO_INCREMENT PRIMARY KEY ,
 msg  LONGTEXT  NOT NULL ,
 fld2 INT       NOT NULL
) TYPE=InnoDB;

INSERT INTO Testing(msg,fld2)
VALUES("",1);

2. Create a VB Project
'***************** VB CODE ***************** '
'Step to create a VB project
'a. Open a new VB project
'b. Add reference of ADO 2.0 
'c. By default New form will be added to the project
'd. Copy the below code in it

Option Explicit
 
Private mcnn As New ADODB.Connection
 
Private Sub Form_Load()
    On Error GoTo DispError
    Dim rst     As New ADODB.Recordset
    Dim strSQL  As String
 
'change below connection string as per your db
settings
    mcnn.Open "Driver={MySQL ODBC 3.51
Driver};SERVER=server;DB=test;UID=root;PWD=;OPTION=3"
    strSQL = "SELECT * FROM Testing"

'*** Method 1.  Client side recordset ***'
'           If 'msg' field has blank string - below
code will give error while trying
'           to access Recordcount property, and
strangely Recordpointer is at EOF
'           If 'msg' field has value other than blank
string & NULL then it will run properly
    With rst
        Set .ActiveConnection = mcnn
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockPessimistic
        .Open Source:=strSQL, Options:=adCmdText
         'Normally below statement should return 1 but
on my m/c
         'it generates E_FAIL status error.
        MsgBox .RecordCount     
         'it will display -1 as record pointer is at
EOF, Strange?
        MsgBox "Record pointer: " & .AbsolutePosition 
 
    End With
    Set rst = Nothing
'****************************************'

'*** Method 2.  Server side recordset ***'
'               If 'msg' field has blank string -
below code will return NULL
'               If 'msg' field has value other than
blank string & NULL then it will return blank string
    Set rst = mcnn.Execute(CommandText:=strSQL,
Options:=adCmdText)
    MsgBox "Msg: " &
IIf(IsNull(rst.Fields("msg").Value), "<NULL>",
rst.Fields("msg").Value)
'****************************************'

    Exit Sub
DispError:
    MsgBox Err.Description, vbCritical
    Resume Next
End Sub
'** END OF VB CODE **'

'/////////////////////////////////////////////////////'
 
3. run the project.  It will display 3 messagebox. On
my m/c it display following messages 
MsgBox 1 --> Data provider or other service returned
an E_FAIL status.
MsgBox 2 --> Record Pointer: -1
MsgBox 3 --> Msg: <NULL>
 

Any help is appreciated.

 
- DEEP 

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to