Re: [PHP] Returning a recordset to a desktop app

2011-03-09 Thread Ken Watkins

On 3/7/2011 7:19 AM, Richard Quadling wrote:
 On 5 March 2011 13:48, Ken Watkins k...@atlanticbb.net wrote:
 On 3/5/2011 4:30 AM, Richard Quadling wrote:
 On 4 March 2011 23:48, Ken Watkins k...@atlanticbb.net wrote:
 Hi All.

 I have a Windows desktop app that I created using Visual Foxpro (a 
 database app).
 I want to write a PHP script that I will call from my desktop app. The 
 script will simply
 query a MySQL database on my web server and return the recordset to the 
 desktop app.

 My question is simply this: What is the preferred method for passing this 
 recordset back
 to the desktop app? I'm assuming that there's no reasonable way to send a 
 recordset back
 without converting it to an array or XML or an object or something? How do 
 I return the
 data in the recordset to the desktop app?

 Thanks for your advice.
 Ken Watkins
 In general terms, the output of a PHP script is going to be text
 (html, xml, csv, etc.) or binary (images).

 Getting a PHP script to communicate natively with FoxPro is not going
 to be trivial task. It MAY be able to be done, but hopefully FoxPro
 has the capability of running a PHP script via the command line ...

 C:\PHP5\php.exe -f script.php -- script_arg1 script_arg2

 PHP can either output the result set (in an appropriate form) directly
 and FoxPro could read it from STDIN (if it has that support) or PHP
 can write the answer to a file and FoxPro can use normal file and
 string functions to read the data.

 If FoxPro has XML support, then use it. It will be much cleaner in the
 long run if the data changes. If not, then a tab separated data file
 (rather than a CSV file). This assumes that your data does not contain
 tabs. If so, choose another separator.

 Richard.
 Richard,

 Foxpro does have XML support, so you answered that part of my question, 
 thanks.
 And it is capable of calling any other executable on the local machine 
 through the
 local OS shell - which seems to be what you are advocating. But I'm not sure 
 how
 I would do that over the internet. I just discussed this issue with Larry, 
 and I assume
 that I would use HTTP? Or is there a way to call a command line script on a 
 remote
 web server without using HTTP?  Sorry if this is a stupid question.

 Thanks for your help!
 Ken
 So, what you need to have is an HTTP Request from within FoxPro.

 http://www.example-code.com/foxpro/http_post_form.asp

 gives an example, but it seems to use a third party ActiveX component.

 If FoxPro can load any locally resident/installed ActiveX component,
 then maybe ...

 http://fox.wikis.com/wc.dll?Wiki~ReadUrl

 has better examples.


 So, using something from that to get the data (XML) and then using
 FoxPro's native support for XML and you should be on your way.

 But at this stage, I'd be looking to ask for further help in a FoxPro
 forum as this is really nothing to do with PHP.

 Good luck.

 Richard.
Richard,

Thanks for your comments. I ended up taking the simple approach - I installed 
an ODBC driver for MySQL and let Foxpro query the database directly from a 
remote workstation. I suppose that what I wanted to do originally was to 
introduce PHP into the mix just to have another option, and to gain more 
experience in PHP. Probably not a good idea anyway.

Thanks again for the help.
Ken Watkins

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Returning a recordset to a desktop app

2011-03-07 Thread Richard Quadling
On 5 March 2011 13:48, Ken Watkins k...@atlanticbb.net wrote:
 On 3/5/2011 4:30 AM, Richard Quadling wrote:
 On 4 March 2011 23:48, Ken Watkins k...@atlanticbb.net wrote:
 Hi All.

 I have a Windows desktop app that I created using Visual Foxpro (a database 
 app).
 I want to write a PHP script that I will call from my desktop app. The 
 script will simply
 query a MySQL database on my web server and return the recordset to the 
 desktop app.

 My question is simply this: What is the preferred method for passing this 
 recordset back
 to the desktop app? I'm assuming that there's no reasonable way to send a 
 recordset back
 without converting it to an array or XML or an object or something? How do 
 I return the
 data in the recordset to the desktop app?

 Thanks for your advice.
 Ken Watkins
 In general terms, the output of a PHP script is going to be text
 (html, xml, csv, etc.) or binary (images).

 Getting a PHP script to communicate natively with FoxPro is not going
 to be trivial task. It MAY be able to be done, but hopefully FoxPro
 has the capability of running a PHP script via the command line ...

 C:\PHP5\php.exe -f script.php -- script_arg1 script_arg2

 PHP can either output the result set (in an appropriate form) directly
 and FoxPro could read it from STDIN (if it has that support) or PHP
 can write the answer to a file and FoxPro can use normal file and
 string functions to read the data.

 If FoxPro has XML support, then use it. It will be much cleaner in the
 long run if the data changes. If not, then a tab separated data file
 (rather than a CSV file). This assumes that your data does not contain
 tabs. If so, choose another separator.

 Richard.
 Richard,

 Foxpro does have XML support, so you answered that part of my question, 
 thanks.
 And it is capable of calling any other executable on the local machine 
 through the
 local OS shell - which seems to be what you are advocating. But I'm not sure 
 how
 I would do that over the internet. I just discussed this issue with Larry, 
 and I assume
 that I would use HTTP? Or is there a way to call a command line script on a 
 remote
 web server without using HTTP?  Sorry if this is a stupid question.

 Thanks for your help!
 Ken

So, what you need to have is an HTTP Request from within FoxPro.

http://www.example-code.com/foxpro/http_post_form.asp

gives an example, but it seems to use a third party ActiveX component.

If FoxPro can load any locally resident/installed ActiveX component,
then maybe ...

http://fox.wikis.com/wc.dll?Wiki~ReadUrl

has better examples.


So, using something from that to get the data (XML) and then using
FoxPro's native support for XML and you should be on your way.

But at this stage, I'd be looking to ask for further help in a FoxPro
forum as this is really nothing to do with PHP.

Good luck.

Richard.


-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Returning a recordset to a desktop app

2011-03-05 Thread Richard Quadling
On 4 March 2011 23:48, Ken Watkins k...@atlanticbb.net wrote:
 Hi All.

 I have a Windows desktop app that I created using Visual Foxpro (a database 
 app).
 I want to write a PHP script that I will call from my desktop app. The script 
 will simply
 query a MySQL database on my web server and return the recordset to the 
 desktop app.

 My question is simply this: What is the preferred method for passing this 
 recordset back
 to the desktop app? I'm assuming that there's no reasonable way to send a 
 recordset back
 without converting it to an array or XML or an object or something? How do I 
 return the
 data in the recordset to the desktop app?

 Thanks for your advice.
 Ken Watkins

In general terms, the output of a PHP script is going to be text
(html, xml, csv, etc.) or binary (images).

Getting a PHP script to communicate natively with FoxPro is not going
to be trivial task. It MAY be able to be done, but hopefully FoxPro
has the capability of running a PHP script via the command line ...

C:\PHP5\php.exe -f script.php -- script_arg1 script_arg2

PHP can either output the result set (in an appropriate form) directly
and FoxPro could read it from STDIN (if it has that support) or PHP
can write the answer to a file and FoxPro can use normal file and
string functions to read the data.

If FoxPro has XML support, then use it. It will be much cleaner in the
long run if the data changes. If not, then a tab separated data file
(rather than a CSV file). This assumes that your data does not contain
tabs. If so, choose another separator.

Richard.

-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Returning a recordset to a desktop app

2011-03-05 Thread Ken Watkins
Larry,

Yes, the PHP script will reside on my web server along with the MySQL database.
I assumed that I would call the script over HTTP, but I guess that is part of 
my question too.
Foxpro allows you to embed controls in its forms, and one of them is a browser 
control. But
I don't really want to echo anything to the enduser, I just want to capture the 
data behind
the scenes, so to speak. I think I can handle that with the browser control.

If I understand you correctly, when I do an echo statement or a print statement 
(or a return()?),
it will return the data to the desktop app. And the best way to return it is in 
xml. I'll investigate
the methods you mention for converting xml since I'm not familiar with any of 
them.

Thanks!
Ken


On 3/4/2011 6:51 PM, la...@garfieldtech.com wrote:
 Assuming you mean that the PHP script is on a web server somewhere and the 
 desktop app is hitting it over HTTP, it's no different than any other 
 response.  Anything you print will be sent back to the client, in this case 
 your desktop a..  So if you want to send XML back, you'd build a string with 
 your XML (either manually or using the DOM or SimpleXML APIs or a 3rd party 
 like QueryPath or whatever floats your boat) and print it, just as you would 
 HTML.

 Note that you may need to explicitly set headers with header() to make sure 
 the desktop app reads it properly.

 --Larry Garfield

 On 3/4/11 5:48 PM, Ken Watkins wrote:
 Hi All.

 I have a Windows desktop app that I created using Visual Foxpro (a database 
 app).
 I want to write a PHP script that I will call from my desktop app. The 
 script will simply
 query a MySQL database on my web server and return the recordset to the 
 desktop app.

 My question is simply this: What is the preferred method for passing this 
 recordset back
 to the desktop app? I'm assuming that there's no reasonable way to send a 
 recordset back
 without converting it to an array or XML or an object or something? How do I 
 return the
 data in the recordset to the desktop app?

 Thanks for your advice.
 Ken Watkins

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Returning a recordset to a desktop app

2011-03-05 Thread Ken Watkins
On 3/5/2011 4:30 AM, Richard Quadling wrote:
 On 4 March 2011 23:48, Ken Watkins k...@atlanticbb.net wrote:
 Hi All.

 I have a Windows desktop app that I created using Visual Foxpro (a database 
 app).
 I want to write a PHP script that I will call from my desktop app. The 
 script will simply
 query a MySQL database on my web server and return the recordset to the 
 desktop app.

 My question is simply this: What is the preferred method for passing this 
 recordset back
 to the desktop app? I'm assuming that there's no reasonable way to send a 
 recordset back
 without converting it to an array or XML or an object or something? How do I 
 return the
 data in the recordset to the desktop app?

 Thanks for your advice.
 Ken Watkins
 In general terms, the output of a PHP script is going to be text
 (html, xml, csv, etc.) or binary (images).

 Getting a PHP script to communicate natively with FoxPro is not going
 to be trivial task. It MAY be able to be done, but hopefully FoxPro
 has the capability of running a PHP script via the command line ...

 C:\PHP5\php.exe -f script.php -- script_arg1 script_arg2

 PHP can either output the result set (in an appropriate form) directly
 and FoxPro could read it from STDIN (if it has that support) or PHP
 can write the answer to a file and FoxPro can use normal file and
 string functions to read the data.

 If FoxPro has XML support, then use it. It will be much cleaner in the
 long run if the data changes. If not, then a tab separated data file
 (rather than a CSV file). This assumes that your data does not contain
 tabs. If so, choose another separator.

 Richard.
Richard,

Foxpro does have XML support, so you answered that part of my question, thanks.
And it is capable of calling any other executable on the local machine through 
the
local OS shell - which seems to be what you are advocating. But I'm not sure how
I would do that over the internet. I just discussed this issue with Larry, and 
I assume
that I would use HTTP? Or is there a way to call a command line script on a 
remote
web server without using HTTP?  Sorry if this is a stupid question.

Thanks for your help!
Ken

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] Returning a recordset to a desktop app

2011-03-04 Thread Ken Watkins
Hi All.

I have a Windows desktop app that I created using Visual Foxpro (a database 
app).
I want to write a PHP script that I will call from my desktop app. The script 
will simply
query a MySQL database on my web server and return the recordset to the desktop 
app.

My question is simply this: What is the preferred method for passing this 
recordset back
to the desktop app? I'm assuming that there's no reasonable way to send a 
recordset back
without converting it to an array or XML or an object or something? How do I 
return the
data in the recordset to the desktop app?

Thanks for your advice.
Ken Watkins


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] Returning a recordset to a desktop app

2011-03-04 Thread la...@garfieldtech.com
Assuming you mean that the PHP script is on a web server somewhere and 
the desktop app is hitting it over HTTP, it's no different than any 
other response.  Anything you print will be sent back to the client, in 
this case your desktop a..  So if you want to send XML back, you'd build 
a string with your XML (either manually or using the DOM or SimpleXML 
APIs or a 3rd party like QueryPath or whatever floats your boat) and 
print it, just as you would HTML.


Note that you may need to explicitly set headers with header() to make 
sure the desktop app reads it properly.


--Larry Garfield

On 3/4/11 5:48 PM, Ken Watkins wrote:

Hi All.

I have a Windows desktop app that I created using Visual Foxpro (a database 
app).
I want to write a PHP script that I will call from my desktop app. The script 
will simply
query a MySQL database on my web server and return the recordset to the desktop 
app.

My question is simply this: What is the preferred method for passing this 
recordset back
to the desktop app? I'm assuming that there's no reasonable way to send a 
recordset back
without converting it to an array or XML or an object or something? How do I 
return the
data in the recordset to the desktop app?

Thanks for your advice.
Ken Watkins




--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php