The Length of the text string exceeds the size of the string

kmkaot
Member Posts: 261
Dear All,
I want get the data from SQL tables directtly. I have used ADO for connection. Connection is ok.
When I want get results in Record set it is giving an error ' The Length of the text string exceeds the size of the string buffer'
BEGIN
IF NOT CREATE(ADOConnection) THEN
BEGIN
ERROR(Text002);
END;
END;
IF ISCLEAR(ADORecSet) THEN
BEGIN
IF NOT CREATE(ADORecSet) THEN
BEGIN
ERROR(Text002);
END;
END;
ADORecSet.MaxRecords(10000);
IF ISCLEAR(conn) THEN
BEGIN
IF NOT CREATE(conn) THEN
BEGIN
ERROR(Text002);
END;
END;
DatabaseName:='TestDataSql';
ConnString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog='+DatabaseName+';Data Source=KRISHNA';
kname:='Binesh';
RecordsAffected:=' ';
RSOption:=0;
//singleQuote:='';
SQLString:='SELECT FGROUPCODE,FLOCATIONCODE,FWAREHOUSECODE,FWAREHOUSENAME FROM MAS001';
MESSAGE(SQLString);
ADOConnection.ConnectionString(ConnString);
ADOConnection.Open;
ADOConnection.Execute(VARSQLString);
RecordsAffected:=' ';
RSOption:=0;
ADORecSet:=ADOConnection.Execute(VARSQLString,RecordsAffected,RSOption);
ADORecSet.MoveFirst;
FieldValue:=ADORecSet.Fields.Item('pname').Value;
MESSAGE(FieldValue);[/code]
I want get the data from SQL tables directtly. I have used ADO for connection. Connection is ok.
When I want get results in Record set it is giving an error ' The Length of the text string exceeds the size of the string buffer'
[code]Name DataType Subtype Length conn Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Connection LADOCommand Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Command ADOConnection Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Connection ADORecSet Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Recordset ADOStream Automation 'Microsoft ActiveX Data Objects 6.0 Library'.Stream SQLString Text 1024 ConnString Text 250 RecordsAffected Text 1 RSOption Integer FieldValue Text 100 DatabaseName Text 30 NewDate Date Lastdate Date firstdate Date VARSQLString Variant mdate Text 30 kmk VariantIF ISCLEAR(ADOConnection) THEN
BEGIN
IF NOT CREATE(ADOConnection) THEN
BEGIN
ERROR(Text002);
END;
END;
IF ISCLEAR(ADORecSet) THEN
BEGIN
IF NOT CREATE(ADORecSet) THEN
BEGIN
ERROR(Text002);
END;
END;
ADORecSet.MaxRecords(10000);
IF ISCLEAR(conn) THEN
BEGIN
IF NOT CREATE(conn) THEN
BEGIN
ERROR(Text002);
END;
END;
DatabaseName:='TestDataSql';
ConnString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog='+DatabaseName+';Data Source=KRISHNA';
kname:='Binesh';
RecordsAffected:=' ';
RSOption:=0;
//singleQuote:='';
SQLString:='SELECT FGROUPCODE,FLOCATIONCODE,FWAREHOUSECODE,FWAREHOUSENAME FROM MAS001';
MESSAGE(SQLString);
ADOConnection.ConnectionString(ConnString);
ADOConnection.Open;
ADOConnection.Execute(VARSQLString);
RecordsAffected:=' ';
RSOption:=0;
ADORecSet:=ADOConnection.Execute(VARSQLString,RecordsAffected,RSOption);
ADORecSet.MoveFirst;
FieldValue:=ADORecSet.Fields.Item('pname').Value;
MESSAGE(FieldValue);[/code]
0
Comments
-
Dear,
Try with increase the length of all the variables & check.
Thanks,
Kavita M. MuthaBest Regards,
Kavita Mutha0 -
I suppose is "RecordsAffected" variable length...think about what happen when you retrieve more than 9 records with your SQL statement* Daniele Rebussi * | * Rebu NAV Diary *0
-
You are right.
I am getting the values.
1. I need to check for big record
2. Put the same in loop to get all values into my Nav table.
Thank you, best catch.0 -
It was nice help actually.
But I am still in trouble to get NULL values in my NAV Table. Unable to convert to field type .
Please helpMyvar := Myvar +1; // How to check if it is null? AttendanceData.INIT; AttendanceData.EntryNum:= vlastno; AttendanceData.PName:= ADORecSet.Fields.Item('pName').Value; AttendanceData.DeptName:= ADORecSet.Fields.Item('DeptName').Value ; AttendanceData.PNumber:= ADORecSet.Fields.Item('PNumber').Value; AttendanceData.Date:= ADORecSet.Fields.Item('attDate').Value ; IF KinTime <> 0D THEN BEGIN AttendanceData.Intime:= CREATEDATETIME(KinTime,0T); AttendanceData.Outtime:= CREATEDATETIME(kOutTme,0T); AttendanceData.total:= ADORecSet.Fields.Item('Total').Value ; / END;
0 -
Please check the code I want fetch records into NAV tables
Intime date and time
Outtime Date and time
Deptname text
Totals IntegerADORecSet:=ADOConnection.Execute(SQLString,RecordsAffected,RSOption); ADORecSet.MoveFirst; REPEAT KinTime:= ADORecSet.Fields.Item('InTime').Value; kOutTme:= ADORecSet.Fields.Item('OutTime').Value; Myvar := Myvar +1; AttendanceData.INIT; AttendanceData.EntryNum:= vlastno; AttendanceData.PName:= ADORecSet.Fields.Item('pName').Value; AttendanceData.DeptName:= ADORecSet.Fields.Item('DeptName').Value ; AttendanceData.PNumber:= ADORecSet.Fields.Item('PNumber').Value; AttendanceData.Date:= ADORecSet.Fields.Item('attDate').Value ; IF KinTime <> 0D THEN BEGIN AttendanceData.Intime:= CREATEDATETIME(KinTime,0T); AttendanceData.Outtime:= CREATEDATETIME(kOutTme,0T); AttendanceData.total:= ADORecSet.Fields.Item('Total').Value ; END; AttendanceData.INSERT; vlastno:=vlastno+1; ADORecSet.MoveNext(); UNTIL ADORecSet.EOF();
0 -
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions