|
As usual, as soon as I ask, I solve it
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
Hello,
I would really like to use .NET for an application that has a website interface and a windows downloadable C++ MFC application. Both need a database backend.
For the web application, I have chosen, ASP and Access ( migrate to SQL 7 later)
For the windows C++ MFC app, the choice is not so clear.
I need the smallest possible size for the windows download and it needs to be backwards compatible to windows 98.
Even using access would require the MDAC redist which is 5MB...too large.
I thought about writing my own small database interface,
however it feels like reinventing the wheel.
.NET would do the job nicely, but a 20MEG download???
Fine for people with cable but not for 56k's
Any other suggestions?
Cheers
John
|
|
|
|
|
I would structure this as follows:
For the web application: ASP.NET. Easy to develop, fast, scalable and, because the server is only 1 machine, a one-time 20Mb download will not be a hassle.
For the client: MFC C++ application. Obvious solution.
It's not clear why you need databases on the client: accessing the server database or a local "cached" database?
A) Accessing the server database: develop a web service. It's fast and as easy as running a wizard on VS.NET. The client side is easier with C# or MC++, but even with MFC is a matter of using a couple of CInternet* MFC classes and a bit of MSXML for parsing the resulting document. It's fast to develop and flexible.
B) Local database: if the database is small, you can replace it for a small XML file. This way you do not need to reinvent the wheel, and do not become "glued" to a proprietary file format.
Remember, a XML file is not a high-performance solution for massive database manipulation, specially if you need lots of "GROUP BY", but for simple searchs and updates, MSXML is quite fast and can be a compatible solution with Windows 98.
lazy isn't my middle name.. its my first.. people just keep calling me Mel cause that's what they put on my drivers license. - Mel Feik
|
|
|
|
|
For the Client:
It will be offline mostly which is why the need for a local cached version. It requires alot of add, del, insert,select, update operations to be done on the local database.
A) accessing server database
I had considered using MSXML(XMLHTTP ) for the accessing the server database, but hadnt considered using MSXML for the local database.
Not sure if MSXML is appropriate for database solution.
Is a small DAO redistributable still availble from MS?
In that case I could use DAO?
Cheers
John
|
|
|
|
|
johnb wrote:
Is a small DAO redistributable still availble from MS?
In that case I could use DAO?
Argh!
I would keep a safe distance from DAO, if I were you.
And I have some nightmare stories I lived with MDAC redistributables, too
lazy isn't my middle name.. its my first.. people just keep calling me Mel cause that's what they put on my drivers license. - Mel Feik
|
|
|
|
|
Maybe ADO is the answer, XP, 2000 already have a version of MDAC installed,
I guess, win98 users will have to install MDAC2.7 approx 5MB download.
|
|
|
|
|
MSDE is basically SQL Server with no fancy GUI and only 5 connections at a time. It's designed so I can write an app without needing to buy SQL Server, then my customers can use it with SQL Server, but if you don't need more than 5 connections at a time it might be worth a look.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
yeah had a look at MSDE, whats the redist size?
|
|
|
|
|
Hi all
No, this aint personal
I have made a SQL DB with a couple of related tables but were a bit "lazy" setting up relationships, basically each relationship were setup with all the options unticked. However, I realise now that some options are obviously necessary, like checking on creation, but I'm not really sure what all the options do.
Firstly I would like to know what does each one do, and how it affects the tables (like when deleting records) , and secondly how to get rid of the couple of "rogue" entries I have in my tables that does not link to anything as I deleted them (to test mind you ).
Help appreciated
"I dont have a life, I have a program."
|
|
|
|
|
You really should read my article: SQL Server DO's and DONT's[^]
But for the "phantom" child rows, if the tables are not too big (this is not a high performance solution), you can run a simple DELETE:
[I'm assuming a master table and a detail table and ID as the primary keys on the tables.]
DELETE detail
WHERE ID not IN (SELECT ID from master)
lazy isn't my middle name.. its my first.. people just keep calling me Mel cause that's what they put on my drivers license. - Mel Feik
|
|
|
|
|
Hey, thanks for reading my thread.
In MS Access I have this central table called 'TableOfTables.' It contains the following fields(types):DB_FIELD0(autonumber), DB_CITIES(string), and DB_LENGTH(number).
It contains approximately 400 entries: An auto-generated number(1, 2, 3, ...), a city name, and the number of entries for that city in the last field.
I need to extract the city name, from TableOfTables, to create a new table within the database such that the new table's name will be the extracted city name and the table will contain an address field, a phone number, an e-mail address, etc. (This isn't the exact stuff I need but it helps with the point and it's FAR shorter than what I really need.;P)
I Opened the DB in Access, created a queary with only TABLEOFTABLES, switched to the SQL panel and tried:
CREATE TABLE TABLEOFTABLES.DB_REGIONS(DB_FIELD0 integer not null, DB_FIELD1 varchar(20) not null, DB_FIELD2 varchar(20) not null, DB_FIELD3 varchar(20) not null)
hopeing to extract the city names from TABLEOFTABLES and generate these ~400 tables with the fields given.
What is the SQL statement I could use to complete this task?
Thanks again.
|
|
|
|
|
Hi,
I don't think you can do that in SQL, you cannot use a variable as the table name in the "create table" statement.
I don't think it's a good idea to do that anyway. You should use just create another table and create a foreign key in that table referencing the autonumber of TABLEOFTABLES, that should solve your problem.
Pyt.
|
|
|
|
|
You can create table programmatically using ADOX (ADO extensions to manage database dictionary). However, like others said, it's not very good idea to create a table per city. Basically it's bad design. Why can't you store information for all cities in a single table and use indexes to retrieve data that belongs to each city. Believe me, it's so much easier.
Vagif Abilov
MCP (Visual C++)
Oslo, Norway
Hex is for sissies. Real men use binary. And the most hardcore types use only zeros - uppercase zeros and lowercase zeros.
Tomasz Sowinski
|
|
|
|
|
<<why can't="" you="" store="" information="" for="" all="" cities="" in="" a="" single="" table="" and="" use="" indexes="" to="" retrieve="" data="" that="" belongs="" each="" city.="" believe="" me,="" it's="" so="" much="" easier.="">>
Believe me, I wish I could for this project!! I have to use one table per city because the device I'm programming (Pocket PC - 2002) using AppForge 3.1 doesn't do SQL statements all that well. Using a 'select * from CITIES' won't work because AppForge (reportedly) only returns EXACT matchs. Finding similarities (LIKE) is a NO-GO.
1) I can't create new tables based upon the results from a query.
2) I can't open and close DBs or tables within a DB because of a memory leak created BY AppForge (It's written in their documentation) - not my code.
3) Management has just set fire to the hoop they want me to jump through.
On the other hand, I'm not a VB programmer, per se, although I've been programming VB on a "professional level" (scary, huh?) for the better part of six months. Being a C/VC++ programmer, one could imagine my disparity toward programming in VB. Not that I don't want to learn VB but I should at least learn before being forced to program in it.
Sorry for the rant. This 'problem' has been wieghing on my concious for the better part of this development cycle.
|
|
|
|
|
Hi,
I have converted a delimited text file to a DataTable and added to a new DataSet (using VB and ADO.NET). I will add more than 1 table to this DataSet.
Then my next task is to convert these tables into serveral xml files.
For example, for the Category Table, I will have to make an xml file which contain datas where category num < 1000, and another xml file which contain datas where category num > 1000. However, since the WriteXml only belongs to the DataSet Object, but not the DataTable object, how do I do this????? ??????
Please help meeeee!!!!
Thanks a million!
Karen
|
|
|
|
|
Go through all rows in the table in a loop and then check if num < 1000.
Then store each row in a new table (add new DataRow to a DataTable) and assign that table to a DataSet and call WriteXml....
Do you understand?
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
Hey Thomas,
I am not too sure of MySQL Administration however with some use of MySQL, I think MySQL needs to be informed of the IP Addresses or hosts that need to be connected. If the connecting php and the mysql resides on the same host, then you can use
localhost
instead, since localhost can always connect.
Deepak Kumar Vasudevan
http://deepak.portland.co.uk/
|
|
|
|
|
Hi there,
I am using OleDB to connect to an IBMDB2 database on an AIX Server on Rs/6000 and also to a Linux based IBMDB2 database.
All is okay but when there is a duplicate record insertion, which has to be handled by a try catch block and return to the calling file, IIS/ASP.NET Worker Process fails miserably with a error message called
Server Application Unavailable. Event Viewer logs a message
aspnet_wp process stopped unexpectedly.
When I tried to run the query via Console Application, the try catch block is not able to handle this type of SQL Error alone. Instead it raises an Exception
System.ExecutionEngineException
The problem does not seem to be with the application, since it can handle any SQL statement failures and can gracefully return the error message except for the the dreaded Primary Key/Unique Key violation exception.
A Free Utility for SQL/OlEDB called QueryExpress from http://www.albahari.com/ also fails and crashes with the abovesaid exception.
We doubt whether the OLEDBDriver (Provider=IBMDADB2) is the culprit since if we use Microsoft ODBC.NET (Driver=IBM DB2 ODBC Driver), the above exception is gracefully handled.
While anything via IBM OleDb Driver fails, IBM DB2 Command Center is able to report the error gracefully along with some SQLState etc.
But my question is there any other OLEDB providers for DB2 database from Microsoft or any other vendor?
Thanks in advance...
Deepak Kumar Vasudevan
http://deepak.portland.co.uk/
|
|
|
|
|
I'm a newbie with SQL so please take it easy on me...
Anyways...
I have 2 tables
clients ( email, name, phone, address, agencyid )
agency ( agencyid, email, name, phone, address, website )
I need to pull all the agency records out and determine if they have clients/members...???
How would I do this...i'm so lost???
Currently I have something like:
SELECT agency, clients WHERE agency.agencyid = clients.agencyid AND this is where i'm lost
Is there anyway inside the SQL statement I can determine if an agency has no members...? This is what I need returned...agencies with no members...???
Do I have to use a for loop?
I'm using mySQL and PHP BTW
$query = "SELECT * agency";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
for($i=0; $i<mysql_num_rows($result); $i++){
$clientResult = mysql_query("SELECT * clients WHERE clients.agencyid = $row[$i].agencyid");
if(mysql_num_rows($clientResult) == 0)
}
Do I have to do it like the above or can I accomplish this from ONE SQL statement...? Or Am I doing it all wrong...?
Thanx!
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
Hockey wrote:
Is there anyway inside the SQL statement I can determine if an agency has no members...? This is what I need returned...agencies with no members...???
The in statement in SQL is brilliant. Basically in your case you need to do this: select * from agency where Not AgencyID in (select AgencyID from Clients)
That should return all agency rows which do not occur in clients.
in can be used many ways. For instance if you have a pre-defined list of values to check for you can do: select * from agency where Not AgencyID in (1, 2, 3, 4)
Paul Watson Bluegrass Cape Town, South Africa Ray Cassick wrote: Well I am not female, not gay and I am not Paul Watson
|
|
|
|
|
I've actually used the in statement before, but only like in your second example...
Anyways, I appreciate the help Paul...I was getting pretty desperate...
One question? I just read a little more on the subject and it appears I could accomplish something very similar using a left join...???
I will have to read up on this appraoch more, but which would be more efficient...?
Thanx again
Cheers!
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
Hey Paul, i'm getting the following error, you wouldn't care to help me figure out why...?
<br />
SQL-query : <br />
<br />
SELECT * FROM agency WHERE NOT agencyid IN (SELECT agencyid FROM clients) LIMIT 0, 30<br />
<br />
MySQL said: <br />
<br />
<br />
You have an error in your SQL syntax near 'SELECT agencyid FROM clients) LIMIT 0, 30' at line 1<br />
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
Hockey wrote:
MySQL
Doh, I just assumed you meant Microsoft SQL Server. I have about 2 hours experience with MySQL and most of it was spent cursing
There are some differences between the TSQL that MS SQL Server uses and the SQL that MySQL uses.
*the following is pure guessing so I could be utterly wrong*
If I had to guess, the error seems to be saying that a in statement has a maximum of 30 returnable rows. There might be a setting in MySQL for this.
If none of that works then in answer to your other question about rather using a join..
SELECT
Clients.ClientID,
Clients.AgencyID AS ClientAgencyID,
Agency.AgencyID,
Agency.Name AS AgencyName
FROM
Clients FULL OUTER JOIN
Agency ON Clients.AgencyID = Agency.AgencyID
WHERE (Clients.ClientID IS NULL)
Sorry but I can't test it against a MySQL box so I do not know if it works on MySQL, works on MSSQL though.
As for performance I am no DBA so I really could not tell you which is faster.
Paul Watson Bluegrass Cape Town, South Africa Ray Cassick wrote: Well I am not female, not gay and I am not Paul Watson
|
|
|
|
|
MySQL doesn't support subSELECTs at all. You must replace the nested query, see the MySQL manual.
|
|
|
|
|
Brutal...
I ended up using multiple queries inside a for loop...proabbly not the MOST elegant solution, but it works...
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|