|
2) No. SQL Server Express.
4) An ADO.net connector (not ODBC) for MySQL is downloadable; I use it to read MySQL databases created by others when I really need to.
|
|
|
|
|
Just like the rest, Use SQL Server Express 2008 R2 with management tools.
It has a 10GB limit per database. Other then taht it sure beats the hell out of Access.
If you really wanna go for open source then I reccomend PostGreSql over MySQL.
Still, I highly recommend SQL Server Express 2008R2 for the simple fact that your app is in .net.
All the best,
Dan
|
|
|
|
|
Long time since I used Access so this may not apply. When backups were done we always did a compact of the database (it's a menu choice IIRC). In a similar situation to what you describe never had any real problems with Access in 5 years or so. The front end was VB6 and the back end was just tables and queries on the server. So may be something in your set up you can tweak.
However, I'd support the suggestion of looking at SQL Server Express. I've had a little experience with MySQL (on Linux) and found no problems with it. So I would not rule it out completely. I think however that SSE is probably a better bet. There are others like SQLite around(though I don't think that's appropriate for what you describe) so may be worth investigating.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
|
craig trombly @ infobright wrote: How do you keep the database tuned for queries when you do not know what the query will be?
You don't tune for a query; indexes aren't linked to queries, but to fields in a table (or a view). Put indexes on the fields that are used for searching and filtering. You can even ask Sql Server which indexes are used most frequently and which aren't, so it could automagically fine-tune itself based on recent usage (the server keeps statistics, so it "knows").
craig trombly @ infobright wrote: but when the CFO wants to look at common trends against the corporate database for spending with daily, weekly and monthly increments for sales engineers in the northeast regions......
I don't see a problem there.
craig trombly @ infobright wrote: Take a look into why an analytic database is becoming a vital concept into the business intelligence communities at http://www.infobright.org
Ah, so this is an ad?
If you want to introduce something new to the community, then please submit an article; the forum is more fore live discussions, and lots of new posts will move this one to the back, and people will forget about it.
Bastard Programmer from Hell
|
|
|
|
|
Eddy, Thank you for letting me know. This is not an ad though. What I am trying to do is to get people talking about analytic databases and to encourage the use and understanding of them. I do appreciate the feedback from you.
|
|
|
|
|
craig trombly @ infobright wrote: What I am trying to do is to get people talking about analytic databases and to encourage the use and understanding of them
Then why did you post
craig trombly wrote: Take a look into why an analytic database is becoming a vital concept into the business intelligence communities at http://www.infobright.org
Not cool.
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Hey Chris, the original post has been removed, but it seems you inadvertently posted the link again.
|
|
|
|
|
Reported: sounds like an ad and looks like an ad and if the page could speak it would probably quack.
"If you think it's expensive to hire a professional to do the job, wait until you hire an amateur." Red Adair.
nils illegitimus carborundum
me, me, me
|
|
|
|
|
Wat
All the best,
Dan
|
|
|
|
|
There is a badly designed Caché database I have to grab data from via ODBC. Rather than updating a table, they decided to just append the new records. (Won't they be surprised, eventually. :p)
Anyway, is there a simple-ish way to get just the latest row for each set of records? Some sort of cool groupy join or something?
"ID" is an autoincrememnt int
Col2 is a varchar that identifies the set of records
Col3 is the data I'm ultimately interested in.
(There are other columns, of course, but probably irrelevant for this question...I hope)
Looks sorta like this:
ID Col2 Col3
1 A 23
2 A 23
3 A 23
4 A 24
5 B 17
6 B 18
7 B 19
8 C 01
9 C 01
What I want to end up with is
4 A 24
7 B 19
9 C 01
|
|
|
|
|
This view might work
create or replace view grouped_table as
select col2
,max(ID)
from table
group by col2
;
Then you query the table and join on the view
select t.ID
,t.col2
,t.col3
from table t
,grouped_table gt
where t.id = gt.id
This is just off the top of my head, though.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
Ah...
Probably should I said I don't own the database, can't create anything on it, etc. Not even a temporary table/view.
|
|
|
|
|
In that case try this then
select t.ID
,t.col2
,t.col3
from table t
,( select col2
,max(ID) id
from table
group by col2
) gt
where t.id = gt.id
Again, off the top of my head.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
|
|
|
|
|
Looks like it's working. Thanks.
Won't know for sure, though, until it finishes...if it does.
Started it a little over three hours ago and it began delivering the goods about two hours after that.
Oh...did I forget to mention this $%^$@#! table has over 177 million rows in it? And I expect the result to be in the neighborhood of 3 million?
Hopefully, it will finish before I go home this afternoon. Otherwise, pfft! "Night Watchman" will come along at 3 a.m. and shut off my computer and I'll have to start all over again in the morning.
EDIT:
It finished. And, as soon as I clicked on the result to try to copy it, BOOM! 'So sorry. We've run out of virtual memory and have to close. Hope you weren't working on anything too terribly important'.
Or words to that effect.
|
|
|
|
|
Using this table:
create table tt (
id int,
Col2 varchar(1),
Col3 Int)
This seems to work for me ...
select * from TT where id in (
select max(id) from tt group by col2)
|
|
|
|
|
If you are doing an inner join does it matter which order the tables are in?
Is
Table1 inner join Table2
any different from
Table2 inner join Table1
Could there be any difference?
Brent
|
|
|
|
|
No, there cannot be. It just means rows between the two tables with the same value in the 'joined' columns. So the order in which the table names are mentioned doesn't matter.
However, for Right and Left joins, it does matter.
|
|
|
|
|
Hi all.
I'm now developing a website that connect to Postgre SQL database. I used NpgSQL.DLL to connect from C# to database. I also finished testing this project in my local pc, it worked well. But unfortunately it did not work well in server. Some errors in connecting to server happened.
These errors happened when website had much people logged in and began using database query functions ( select, update, delete .. ). I think errors begin from codes in connect database functions. but i still can not fix it. this is my connecting database codes.
------ codes connects database ---------
-- Connect.cs file.
public static void connectDB()
{
try
{
conn.ConnectionString = connection;
conn.Open();
}
catch
{
}
}
public static void closeConnectDB()
{
conn.Close();
}
public static int ExecuteQuery(string SQL)
{
try
{
connectDB();
NpgsqlCommand cmd = new NpgsqlCommand(SQL, conn);
return cmd.ExecuteNonQuery();
}
catch
{
closeConnectDB();
return 0;
}
}
public static DataSet SelectQuery(string SQL)
{
DataSet ds = new DataSet();
try
{
connectDB();
NpgsqlDataAdapter nDa = new NpgsqlDataAdapter(SQL, conn);
nDa.Fill(ds);
return ds;
}
catch
{
closeConnectDB();
return ds;
}
}
----------------- use to execute these codes --------
....
--- calling functions files.
try
{
string strTest = "Select * from abc where .. ";
DataSet ds1 = new DataSet();
ds1 = Connect.SelectQuery(strTest);
if (ds1.Tables[0].Rows.Count > 0)
{
}
else
{
int kq = Connect.ExecuteQuery(strInsert);
if (kq > 0)
{
int kk = Connect.ExecuteQuery(strUpdate);
kk = Connect.ExecuteQuery(strUpdate2);
strHTML = "OK";
}
}
}
catch
{
strHTML = "errors.";
}
finally
{
int kk = Connect.ExecuteQuery(strUpdate);
kk = Connect.ExecuteQuery(strUpdate2);
strHTML += "-- Sub Finally";
}
-----------------End calling function---------------
Here sometimes it worked well but sometimes catched errors.
Can you help me? thanks and regards.
|
|
|
|
|
Looking at your code, I can't help but think you're being hammered because you have static methods in a multi user system, and the code isn't thread safe. In other words, you have static variables (take a look at your connection variable), and you are opening and closing them without any form of synchronisation in place. In other words, you could have two users both "open" a connection at the same time, and then one finishes and closes the connection before the other one completes.
The easiest fix is to move the open and close logic into the other methods, rather than relying on member variables.
|
|
|
|
|
thanks. i did it and my problems solved.
modified 23-Feb-12 2:43am.
|
|
|
|
|
stop your static abuse, and start using the using construct[^], it fits quite well in DB applications.
|
|
|
|
|
|
Hi everyone,
I want to make a library project,I have made this model and I have a question is this a correct desgin for implementation or no
Main table is Books I have these fields on it
Book ID Bookname Title publish year description ISBN
Authors table
Book ID author name phone address email
publishers table
BookID publisher name phone address email
BookID's are primary key in this databse and I am going to use of it for relationship
is this a correct design and do I need to insert anything?
Thanks
|
|
|
|
|
messages wrote: question is this a correct desgin for implementation or no
Instead of having each design validated here, you could use the normalization-rules and validate it yourself.
Bastard Programmer from Hell
|
|
|
|