hi all

hope some one can help me out im a php guy and ive got an application i want to make that will run on windows and ive never program for desktop before and i really need some advice.

here is the scenario

iv got my website with a list of shops on it store in mysql which user can search by category, theres a search form the user choose category the query search the db and load the result ect.now i want some user that dont have access to internet still be able to search the shops.

these user have only basic understanding of how to use a pc.so i need to write a program put on a cd so once they load it on there pc they get the app which they will make the search and load the result.

so which language is better for this job we are talking desktop and that is able to connect to a database lets say .mdb but without odbc or what so ever the app must be able to read directly from the database cause the user wont be able to set up database want so ever.ive try using flash but it need 3rd party script to connect to db such as asp and php but i need it ot run on desktop.i hope someone understand an can help me out.


Judging from your post, you seem to have some unrealistic expectations for your application. I'm not trying to discourage you, just point out that it's not as easy as you imply. Here are some things to consider:

First and foremost, in order to connect to a database you kinda have to follow its rules. If you want to use a DBMS (even Access!) there are support files, drivers, configuration settings, etc. As a PHP developer, much of this complexity is hidden from you on the web server. All you see is probably a connection string in your script. The connection string provides information to the server OS to load a driver (ODBC, OLEDB, Jet, whatever). It's the driver that communicates with the DBMS engine, which in turn does the heavy lifting. If you try to "read directly from the database" without using a driver, you'll most likely get a stream of bytes that looks like gibberish. This is particularly true for high-end DBMS's that use compression, or encryption schemata to secure data.

If you want users to use your app on the desktop, all that stuff has to get to their machine. So not only do you have to write the program the user uses, but you have to supply all the supporting files, dlls and configuration settings that will allow that functionality. That means either (a) you have to write a sophisticated setup program to install all the needed components or (b) use an alternative method to store your data (flat file?) that doesn't require all the baggage.

Option (b) severely limits the functionality available, and requires you to do some complicated stuff inside your app. It can be done, but it requires some thinking and some study to figure out how to do it. Example: sorting your data alphabetically in an array.

Since your users "have only basic understanding of how to use a pc" then you have to put in the effort to make this powerful sophisticated setup program easy to use so the user doesn't get overwhelmed. Can it be done? Sure. But it can be as much effort as writing the app in the first place.

Some IDE's (integrated development environments) like MS Visual Studio (for VB, C++, etc) have "wizards" that guide you through packaging apps for deployment. But if you think about it, someone had to code that to make it simple...right? Sort of like what you need to do for your users?

As far as what language is best, that's open for debate. Some people like VB, some like Java, some like C/C++, some even like Assembler. All have their strengths and weaknesses...that's why there are so many different languages. But no matter which you choose, as soon as you start coding for compile/deployment (as opposed to scripting a web page to be interpreted by a browser) you have all kinds of learning to do. There are many things you just can't take for granted anymore. You don't have a big, fast, strong server to do the heavy lifting your program may need to do. You may even have to do some memory management.

Another alternative is to have your sophisticated but simple setup program put up a local web server on the user's machine. Then you can use your original PHP script. You just have to supply the DBMS support files and the database files. Again, simple on the surface (what the user sees) but complex and sophisticated under the covers.

I hope that gives a little perspective. All the things above are doable, with enough time and patience. If you're looking for speed of development, you have to make some concessions on your requirements.

thanks for the reply but i manage to find a solution.i use visual studio vb connect to access and add some query and also data binding for search and display my result in datagrid.

thanks anyway