PDA

View Full Version : usememosize VT property



strato
2021-04-11, 17:26
What value should I specify for the "usememosize" property in the VT definition? What does this value depend on and what does it affect? What happens if this property is not specified in the VT definition?
I did not specify this property when I created VT. If I query now, the cursoradapter returns a variable value. In 2 cases out of 6 queries, the value is 0, 1x 1255, 1x 1741, 1x 1922 and 1x 989922050!

HankFay
2021-04-11, 19:44
Hi Strato,

Are you hitting a Lianja table or a SQL Server table?

If using a SQL Server table on the backend, do you have it defined as varchar(max)? (You should.) If not, what do you have it defined as? If it returns a number result rather than a character, perhaps the backend is defined as a varbinary?

I assume you have looked at what usememosize does: https://www.lianja.com/doc/index.php/CursorAdapter

And that you have looked at this (the datatypes, what they hold, etc.): https://www.lianja.com/doc/index.php/Appendix_A The short story: if it's CHAR and could be long, use Memo in a Lianja table. If it's numeric and isn't "just one number" use Object.

Hank

strato
2021-04-12, 00:41
hi Hank and thank you,
The basetables are mySQL tables. In the basetables there are 'mediumtext' or 'longtext' type fields represented as 'memo' type in Lianja's VTs. The VTs was created with "Create virtual tables from ODBC ..." in Linaja 5.0.

barrymavin
2021-04-12, 00:46
If you turn DEBUG on you can see what's happening in the debug_client file.

When reading varchar fields Lianja will limit them to 64k so not sure where you are getting that large number from. In fact it will report and error.

Check the debug file to make sure your ODBC driver is behaving as you expect it to.