|
It sounds like you're using the ODBC driver layer to communicate with MySQL. You may get better performance with Connector/Net[^], the native .NET data provider for MySQL.
Also, consider preparing the statement - create the command object once, and call Prepare on it. This means that the server only has to parse the query once, not repeatedly. Don't forget to Dispose the command object once you've finished with it.
|
|
|
|
|
Since this Connector/Net is fairly new to me, I don't know how to change my code to reflect this. Do you think you could provide me with some help, any kind of samples will help.
Thanks
|
|
|
|
|
Server: Msg 18452, Level 14, State 1, Line 1
Login failed for user 'IN_FORMO'. Reason: Not associated with a trusted SQL Server connection.
How can i solve this
I read BOL, try all what can find,
Is there something about Windows Accounts or where...else
|
|
|
|
|
1-post the connection string you use
2-do you use a domain?
3-is the application user added to sql server logins?
|
|
|
|
|
i have done it, it was not sush big proplem
problem was my admin, WAS because he is a**hole!!
|
|
|
|
|
IF @ProductID IS NULL OR @ProductID = '' <br />
BEGIN<br />
--Do nothing cos you suck balls<br />
SET @MainQuery = @MainQuery + '';<br />
END <br />
ELSE <br />
BEGIN<br />
SET @MainQuery = @MainQuery + ' AND L.ProductID = ''' + @ProductID + '''';<br />
END
I am using that code to add additional where clauses but I can't seem to work out how to do the If statement the other way around. Which would allow me to remove the Else chunk. I hope this makes sense as it is a simple issues. Thanks in advance
|
|
|
|
|
where
L.ProductID=
case coalesce(@productid,'') when '' then L.ProductID else @ProductID end
|
|
|
|
|
Ok could you explain exactly what this does. I don't understand how it performs the same task as my original code
|
|
|
|
|
If @param is null or '' then where will be:
...where l.product=l.porduct and will do nothing
but if @param has eny value where will be:
...where l.product=@param and will do filtering by column l.product
CASE..when...wnen...END is very powerfull and can be used in meny ways
|
|
|
|
|
OK thanks for that but im still not following. Perhaps this might help.
The code should add a filtering AND statement if the parameter was passed. As it stands I am checking for either a null value or no value to be passed and then doing the work in the else part of the statement . So really all I require is the code to check that a parameter has a value. If it does i want to perform the filter.
|
|
|
|
|
ok try this
IF @ProductID IS not NULL OR @ProductID <> ''
begin
SET @MainQuery = @MainQuery + ' AND L.ProductID = ''' + @ProductID + ''''
end
execute(@MainQuery)
|
|
|
|
|
I got the
@ProductID IS NOT NULL working fine.
The <> does't seem to work though. If I set ProductID to '' and use it I still get a succesfull match. Which of course not right?!
|
|
|
|
|
Change it to:
IF @ProductID IS NOT NULL AND @ProductID <> ''
The OR condition you were shown will evaluate to true if either part is true, which setting @ProductID to an empty string will do.
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
That makes no sense. This will never evaluate to true ever. If @ProductID is null then it can't = ''. If @ProductID = '' it wont be null. Both side of this statement would have to be true for the whole thing to return true and this is not possible.
Unless of course SQL works in a completely different way to every other programming language I've used??
|
|
|
|
|
hi friend
what type is your @param
be fast
|
|
|
|
|
|
try
coalesce(@param,'') that mean if is null translate it like ''
|
|
|
|
|
Welcome to the wonderful world of NULLs. Try the following test:
DECLARE @ProductID NVARCHAR(10)
SET @ProductID = null
IF @ProductID IS NOT NULL AND @ProductID <> ''
BEGIN
PRINT 'Started 1st test'
END
ELSE
BEGIN
PRINT 'Failed 1st test'
END
-- Will print Failed 1st test
SET @ProductID = ''
IF @ProductID IS NOT NULL AND @ProductID <> ''
BEGIN
PRINT 'Started 2nd test'
END
ELSE
BEGIN
PRINT 'Failed 2nd test'
END
-- Will print Failed 2nd test
SET @ProductID = 'Hi'
IF @ProductID IS NOT NULL AND @ProductID <> ''
BEGIN
PRINT 'Started 3rd test'
END
ELSE
BEGIN
PRINT 'Failed 3rd test'
END
-- Will print Started 3rd test
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
|
Hi 2 all,
How can i access remote sql server 2000 from QueryAnalyzer or StoredProc
over TrustedConnection for InsertUpdateDelete
|
|
|
|
|
This requires a WAN setup of some sort. I'm no network admin, but a VLAN might work also. But either way there has to be a way for the account on your LAN to be trusted in the remote domain. You'll have to discuss it with the network admin in charge of the network where your SQL Server is located. Otherwise you're stuck using SQL Server Authentication.
|
|
|
|
|
Hello everyone,
I am trying to get the list of table in a Database and the total number of rows in each table. I have created the loop which loops and get the Table names. I have problem getting the total number of rows for each table in the Database. I successfully get the Table's name but once it comes to getting the total number of the row, I get problem. I am not sure if I can use the Odbc[0] once again to get the total number of the row since it is in use for the loop to get the Table's name.
My code is:
OdbcCom = new System.Data.Odbc.OdbcCommand("USE " + DataBaseName + ";", OdbcCon);
OdbcDR = OdbcCom.ExecuteReader();
OdbcCom = new System.Data.Odbc.OdbcCommand("SHOW TABLES;", OdbcCon);
OdbcDR = OdbcCom.ExecuteReader();
txtLog.AppendText("Tables inside " + DataBaseName + ":\r\n");
while (OdbcDR.Read())
{
txtLog.AppendText(">> " + OdbcDR[0] + "\r\n");
ListViewItem item1 = new ListViewItem(OdbcDR[0].ToString());
MessageBox.Show("Table name:" + OdbcDR[0].ToString());
// START COUNT
OdbcCom = new System.Data.Odbc.OdbcCommand("SELECT COUNT(*) FROM " + OdbcDR[0].ToString() + ";", OdbcCon);
OdbcDR = OdbcCom.ExecuteReader();
// What should I put to get the return value "Total row number" in here?
item1.SubItems.Add("Need to add the total number of rows here!");
// END COUNT
listView1.Items.Add(item1);
}
Could you be kind enough to help me out on this one? Thank you very much and have a great day.
Khoramdin
-- modified at 16:16 Sunday 4th March, 2007
|
|
|
|
|
You will need to create a new instance of the DataReader in the loop where you are trying to get the count. Or instead of getting the data reader you could call the ExecuteScalar function on the command.
Mike Lasseter
|
|
|
|
|
hey guys,
i have quite a few SQL databases on my PC. I want to script all the databases into a text file. The script should contain both the data and the structure of the databases. How can i do this? I want to execute this process from a batch file. Is there a tool or something that i could use? I've been hunting for something like this for a long time but I haven't found anything. In MySQL tis is a relatively simple process which can be accomplished by using the mysqldump utility.
|
|
|
|
|