Solved

VFP 9 MySQL Select Data Type Problem

Posted on 2010-09-08
4
557 Views
Last Modified: 2012-06-27
Hi All. I have an FP ap that I've been using for a couple of years now that selects data from around 50 mysql tables. All has been working fine until today when I installed the ap on a second PC.

On this PC and this PC ONLY I'm having a problem with some of the selects.  Everything still works fine on the original PC. Both are WinXP SP3 utilizing ODBC 3.51.

The problems seem to stem from data type issues. Most I have fixed with simple IF vartype statements.

But one I simply can't get a handle on. The data is being selected from a MySQL 5.1.33 server running on WinXP SP3. The FieldType is Decimal 6,2.

After I connect to the db, I simply run:

lcQuery="SELECT nh1 FROM " + lcTableName

and use SQLEXEC to place the value into a Cursor.

The value of nh1 in the table is 0.190

However, any attempt to use the value returned as Numeric, for example a simple if statement:

IF (nh1 < 2)
      WAIT WINDOW "T"
ELSE
      WAIT WINDOW "F"
ENDIF

fails with a mismatched data type error. It seems the date type of the value returned is Text.

I've tried using VARTYPE to change the data type, I've tried CAST, nothing seems to work.

Can someone PLEASE show me how to Convert this data to numeric, either in FP (preferrable) or in MySQL as it's being selected from the table?? Thx!!

0
Comment
Question by:formadmirer
  • 2
  • 2
4 Comments
 
LVL 6

Expert Comment

by:apresence
ID: 33633471
In MySQL, try:
lcQuery="SELECT CAST(nh1 AS DECIMAL(6,2)) FROM " + lcTableName
0
 

Author Comment

by:formadmirer
ID: 33633521
apresence, thanks, but I actually did already try that. The value returned, when tested with the simple vartype IF statement, still evaluates to being text and can't be used in any numeric comparison statements without generating the mismatch data type error.

I know it SHOULD work, it's just not.
0
 
LVL 6

Accepted Solution

by:
apresence earned 500 total points
ID: 33633530
@formadmirer: Yeah, I know you said you had tried it, but I figured it was worth a shot.

I'm not sure what's going on.  If I had to guess, ODBC is being confused about the data types.  Have you tried installing the latest MySQL ODBC drivers?  If the versions are different from the PC that is working and the one that isn't, that's a pretty good culprit to look at.
0
 

Author Closing Comment

by:formadmirer
ID: 33633604
Unbelievable - you hit the nail on the head. After nearly 3 hours trying to figure this out, I had just thought to check the odbc drivers myself.

My PC (where the ap was designed) is using 3.51.17, the new PC, 3.51.11.

Updated the new PC to the same driver as mine and VOILA! - it now works!

Thanks for the help - you get the points.
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Microsoft Visual FoxPro (short VFP) is a programming language with it’s own IDE and database, ranking somewhat between Access and VB.NET + SQL Server (Express). Product Description: http://msdn.microsoft.com/en-us/vfoxpro/default.aspx (http://msd…
In this article, I show you step by step with screenshots to assist you - HOW TO: Deploy and Install the VMware vCenter Server Appliance 6.5 (VCSA 6.5), with some helpful tips along the way.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now