|
Alternatively, you could restore a bckup of the SQL DB to the MSDE DB...have a little app that will allow that if you need it.
"Now I guess I'll sit back and watch people misinterpret what I just said......"
Christian Graus At The Soapbox
|
|
|
|
|
I want to insert a row in a table which has a PK in the first field. I make a INSERT and give parameters to the sql server for all fields except the id field which is set in the db as Autoincrement so i dont have to worry about.
ALL of this is working fine.
But now i want to work immediatly after the insert with the new id of this row, which was given to the row automaticly by the sql-server. My problem now is that i have no Idea how to get the id value into my code (sure I can make a select query questioning all the parameters which i still have from the insertcommand, and ask for the id but this way seems very complicated to me!!!)
So if any more experienced Programmer than me can help me, please!!!
10000 Thanks in advanced.
PS
Languages C#, ADO.Net, and Sql Server 2000
best regards helli
|
|
|
|
|
This works within a stored proceedure. The statement should work in ADO.NET correctly as long as you do not drop your connection or make another call between the INSERT and the SELECT.
<br />
INSERT INTO tbl(ColName1,ColName2)<br />
VALUES('One','Two')<br />
<br />
SELECT SCOPE_IDENTITY()<br />
|
|
|
|
|
Hi, guys
The below is the command I want to install MSDE2000:
setup SAPWD="123456"
But there will be a dialog appearing
SETUP [/?][/f][/i <inf src="" file="">]
...........
........... (....... is the parts I ignore)
And then installation will exit.
How can I install MSDE.
Help, please!!!!
vigorous
|
|
|
|
|
|
this is my first query on this site..
i just wanna optimize a sql query..cud anyone help me out.
This query will give the accounts which are there in table1 & not in table2.
select distinct A.account_id
from table1 A
where not exists
(
SELECT account_id from table2 B
where B.account_id = A.account_id
)
as per the show plan of this query it will do a table scan on table1..
in table2
Using Clustered Index.
Index : acct_id_indx
varun handa
|
|
|
|
|
Do you have any indexes or a primary key on table1?
If you do, do any of them have account_id as the first (or only) column in the index?
Finally, try this and see what it gets you:
SELECT DISTINCT
A.account_id
FROM
table1 A
LEFT OUTER JOIN table2 B
ON B.account_id = A.account_id
WHERE
B.account_id IS NULL
This assumes that account_id is a primary key or other non-nullable column in table2.
There are many ways this query could be written to achieve the same results, but the question as to which ones would actually work, and which one would be most efficient requires much more information than what you've provided.
Grim (aka Toby) MCDBA, MCSD, MCP+SB
|
|
|
|
|
thx for ur reply..
but this query is not functioning..
the error generated is::
""the word LEFT OUTER JOIN is not recognized parametr option
incorrect syntax near LEFT""
& this query qill always give me zero results as u r using --where B.account_id is NULL
i m using SQL Advantage
varun handa
|
|
|
|
|
Sorry, I assumed SQL Server 2000, since you didn't specify. I'm not familiar with Sybase.
the LEFT OUTER JOIN tells the query to include ALL records from A, even if they don't have a matching record in B. The B.account_id IS NULL would have caused the query to only return data from rows in A that did NOT have a matching row in B. (When there's no matching row in B, all of the B values would come back as NULL.)
But I'm not sure what the syntax is to get the same effect in Sybase.
My suggestion, then, would be to use your original query, but make sure that table2.account_id is indexed.
Grim (aka Toby) MCDBA, MCSD, MCP+SB
|
|
|
|
|
Hi there!
here is my problem:
using a couple of queries, i put 2 datatables in a dataset, now i need to do one more query on those 2 datatables. how can i do this last query without writing the datatables on disk first?
thanks in advance,
fuel2run
|
|
|
|
|
The DataTable class does have a Select method, which runs simple SELECT queries against the DataTable and returns an array of DataRows. I believe this only works with single-table queries, though, so I'm not sure how useful this will be... there's also the DataView component, but IIRC that has the same limitations; it probably just calls the Select method of its DataSource or something.
|
|
|
|
|
do you thinkthere's any way to do the query i need?
basically i don't want to write the 2 temporary tables on disk
any advice?
thanks!
fuel2run
|
|
|
|
|
What query are you doing on what tables, and what temporary tables do you think you need to create? I'm a bit unclear on exactly what you're trying to accomplish other than "run a query on tables in memory which involves creating temporary tables"...
|
|
|
|
|
i need the 2 temporary tables because i'm quering 2 times the same tables and then i'm doing a third query to cross the results
basically, i'm looking for the right bus (it's a bus timetable) to go from some origin to a destination (so i create the temp Table "from", the temp table "TO" and cross them)
it works, but it's horrible and slow
thanks
fuel2run
|
|
|
|
|
So if I've got this straight, you've got a single Buses table with a From and a To field, you're creating a From table with all the buses from some specific location and a To table with all the buses to a specific location, and you want to find the record which is in both those tables?
If that's all you want to do, why not put both conditions in one query and save yourself the trouble of creating the temp tables in the first place?
SELECT * FROM Buses WHERE [From] = ? AND [To] = ?
Or am I missing something here?
|
|
|
|
|
hi ekolis,
well, yes you are missing something, but that's why i haven' been clear enough,
the FROM and TO aren't necessarily the start end stop of the bus route, but they can be intermediate stops.
moreover i'v got a table with the sequence of stops for each bus route (every bus route has the same code and this is what i'm looking for). i'haven't got a column called "STARTS AT" nor a column "ENDS AT", i only have a column "STOPS AT".
so a condition like "WHERE [From] = ? AND [To] = ?" can't exists
thas's why i'm confused...
any advice?
thanks anyway for your suggestions and for interesting.
cheers!
fuel2run
|
|
|
|
|
So I suppose you have 3 fields: BusID, StopTime, and StopLocation, let's call them? And the primary key is BusID and StopTime? Why don't you try creating a query, call it BusSchedule, which looks like this:
SELECT * FROM BusStops WHERE BusID = ? ORDER BY StopTime
Now run this query in a foreach loop on BusID, and it will give you the bus's schedule in the standard timetable format. (Assuming StopTime is stored as a DateTime and not as a string!) Now just grab the first and last record from this query
drFirst = dtQuery.Rows[0];
drLast = dtQuery.Rows[dtQuery.Rows.Count - 1];
and compare drFirst["StopLocation"] to your desired start location and drLast["StopLocation"] to your desired end location. If both equalities hold true, then the BusID you just ran the query on is the bus you're looking for and you can break out of the foreach loop.
Is this the answer you're looking for, or do I still not have your table structure right?
|
|
|
|
|
well,
you figured out the table structure correctly, the primary key is BusID only, StopTime is a DateTime Field, but i can't use a query like this because "Origin" and "Destination" of the travel aren't necessarily the first and last stops of the bus travel.
my query would answer a question like: "i want go from, say, philadelphia to chicago leaving at 10.00am (within a range of a couple of hours: 10.00-12.00am), which bus i have to take?"
so i might take a bus stopping at philadelphia and at chicago but started somewhere else and destinated to somwhere else again.
i'm gettin' lost!
cheers!
fuel2run
|
|
|
|
|
If your primary key is only BusID, how can a single bus have multiple stops? It would need to be listed multiple times (once for each stop), but that wouldn't be allowed by the primary key...
I think I see what you're getting at with the "cross query" you wanted to use - I've never done any of those before, but it seems from what you've said that a cross query returns all records that are present in both tables you're comparing. So what you were originally doing is you had a query which returned all the buses that stopped at the source location and a query which returned all the buses that stopped at the target location? I guess what you could do then is something like this:
TimeSpan tsBest = tsBest.MaxValue;
string strBest = null;
foreach (DataRow drFrom in tblFrom.Rows)
{
// See if the bus is also in the "to" table
DataRow drTo = tblTo.Find(drFrom["BusID"]);
if (drTo != null)
{
// See if the bus stops at the from location *before* stopping
// at the to location (note: will not work if buses run past midnight!)
DateTime dtFromTime = (DateTime)drFrom["StopTime"];
DateTime dtToTime = (DateTime)drTo["StopTime"];
if (dtFromTime < dtToTime)
{
// See if bus leaves with desired range
if (dtFromTime <= dtDesiredMaxFromTime && dtFromTime >= dtDesiredMinFromTime)
{
// found a bus
// note: will not necessarily find the bus CLOSEST to the desired
// departure time, only the FIRST bus listed that is acceptable
strBest = drFrom["BusID"].ToString();
break;
}
}
}
else
{
// no bus goes here to there
strBest = null;
}
}
|
|
|
|
|
hi ekolis,
you're quite right once again, i didn't explain enough, some more informations for you:
i'm trying to convert to asp.net something i've done inside access writing some vb code in a module and, most iportant, i have 3 tables to query from:
- "TabLines"= LineID, LineName
- "TabRoutes"=RouteID, LineID (related to LineID in "TabLines"), .. more data ...
- "TabStops"=LineID, RouteID, StopTime, ...more data...
"TabLines"' key field is LineID, RouteID and LineID are both key fields in "TabRoutes" and they are related to the same fields in "TabStops" where there are no key fields.
the procedures in access can find every bus stopping in the "from" place within a range of 2 hours from the time specified by input and stopping in the "to" place
i create the "ToTable" and write it on disk, create the "FromTable" and write it as well and then query those tables:
..."WHERE ToTable.LineID=FromTable.LineID AND ToTable.RouteID=FromTable.RouteID AND ToTable.StopTime>FromTable.StopTime"
i never thought to past midnight! this is one more problem!
Cheers!
fuel2run
|
|
|
|
|
So the procedures generate the FromTable and the ToTable, and you then query those tables? If that's the case, can I see the procedure code? I've never done anything with Access procedures before, but I imagine they're similar enough to VB.NET that I could at least help translate them... if I'm mistaken again, would it be too much trouble to email me your Access file (with any sensitive data removed) so I can understand what's really going on?
|
|
|
|
|
well, i might send you the access file, but bear in mind this is in italian and almost not commented,
moreover, my problem is finding a different way from the one i used in the access file while simply translating froom vb to vb.net should be easy.
anyway, if you still want to take a look at the file let me know, i might send you the db with empty tables.
cheers!
fuel2run
|
|
|
|
|
Well, sorry that I've been unable to help you thus far. Perhaps we can look at some of your assumptions and try to work around them:
1. Why is it necessary that you not write the temporary tables to disk?
2. Why is it necessary that you do this from scratch (i.e. not use the VBA code or convert it in a simple way?)
3... ???
|
|
|
|
|
weel, i don't want to write temporary tables because it's a slow task, nothing more.
i thank you for trying to help me anyway!
cheers!
fuel2run
|
|
|
|
|
I have an application with a typed dataset. The application works fine if I fill the dataset from a SQL Server connection. However, recently, I've been trying to change the application so that it reads from an XML file. This was supposed to be easy, but its turning out not to be.
I instantiate my dataset subclass, load the data from the database, and then write the XML using the WriteXML (outfilename, System.Data.XmlWriteMode.WriteSchema) to create an XML file with Schema. My plan is to save this file off and not use a database for production hosting because my application isn't really transactional (trying to save some hosting costs). Creating the file is no sweat.
However, when I try to read file into a DataSet using ReadXML and an explicit System.Data.XmlReadMode.ReadSchema, I get an ""Invalid 'key' node inside constraint named: [Constraint Name]"" exception. I've scoured the web and the schema to see if I can identify something wrong, but I haven't found anything of note.
On one post, someone suggested changing the msData:isDataSet flag in the schema from ""True"" to ""False"". I'm not sure I understand the logic, but I tried this. I read the file, but I get different errors (see below for a summary of the scenarios).
On MSDN I saw a note that there is a known bug with row states on XML-based datasets and you should copy the dataset prior to binding it to work around the problem. This seems to do something, but again, I get different errors.
I've tried every scenario I can think of: Reading vs. Ignoring the Schema, Changing ""IsDataSet"" between False and True, and copying vs. not copying prior to binding. Here are my results:
(1) Read Schema; IsDataSet=True -- Results in: Invalid 'key' node inside constraint named: [Constraint Name]"" exception
(2) Read Schema; IsDataSet=False; Copy Prior to Bind -- Results in: The name '[DataSetName]' is invalid. A datatable cannot have the same name of the dataset.
(3) Read Schema; IsDataSet=False; Don't Copy Prior to Bind -- Results in: Application runs, but the result is an empty datalist.
(4) Ignore Schema; IsDataSet=True; Copy Prior to Bind -- Results in: Object reference not set to an Instance of an object when a DataView is bound to the DataList.
(5) Ignore Schema; IsDataSet=True; Don't Copy Prior to Bind -- Results in: Application runs, but the result is an empty datalist.
(6) Ignore Schema; IsDataSet=False; Copy Prior to Bind -- Results in: Object reference not set to an Instance of an object when a DataView is bound to the DataList.
(7) Ignore Schema; IsDataSet=False; Don't Copy Prior to Bind -- Results in: Application runs, but the result is an empty datalist.
Again, the application works fine if I load the DataSet from the database. Its just when I use the ReadXML methods that it doesn't work. Can anyone suggest anything else that I should be trying?
Thanks,
Jordan
|
|
|
|
|