|
How long is the statement ? Perhaps you need to break it up into smaller ones.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
You are probably getting a timeout because of the volume of data that you are trying to update. Try to split this into smaller batches and see if that fixes it.
the last thing I want to see is some pasty-faced geek with skin so pale that it's almost translucent trying to bump parts with a partner - John Simmons / outlaw programmer
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
i dont write an SQL statement why it give me that error ?
Bravoone
|
|
|
|
|
This is cause with using
EXEC ("SELECT...........etc.............etc.......")
Your SQL is too long and the SQL compiler don't like it.
Blog Have I http:\\www.frankkerrigan.com
|
|
|
|
|
this is my code where the code is to long where i must do that?
void CTestDlg::OnChange1()
{
CWaitCursor wait; // Display a wait cursor
CText pTextp;
CString sAnul1,sLuna,sLuna1,sZiua1,sData,sTemp;
m_1.GetWindowText(pTextp.sText4);
sTemp.TrimLeft();
sTemp.TrimRight();
m_2.GetWindowText(pTextp.sText3);
sTemp.TrimLeft();
sTemp.TrimRight();
CRecord_test pBun;
pBun.m_strFilter="password='"+ pTextp.sText3 +"'";
pBun.m_strFilter="name='"+ pTextp.sText4 +"'";
CString sTimp = "777";
pBun.Open();
int nIndexA = pBun.m_password.Find(pTextp.sText3);
int nIndexB = pBun.m_name.Find(pTextp.sText4);
if ((nIndexA != -1) & (nIndexB != -1))
{
pBun.Edit();
pBun.m_name = sTimp;
pBun.Update();
pBun.Close();
}
what is wrong here?
}
Bravoone
|
|
|
|
|
Hello colleagues,i use a database (Access):
<br />
.................................................................<br />
void Db::Next(ADODB::_RecordsetPtr& rs){<br />
try{<br />
rs->MoveNext();<br />
}catch(_com_error e){<br />
_bstr_t bstrError(e.ErrorMessage());<br />
CString strError=(TCHAR*)bstrError;<br />
AfxMessageBox(strError);<br />
}<br />
}<br />
<br />
void Db::Last(ADODB::_RecordsetPtr& rs){<br />
try{<br />
rs->MoveLast();<br />
}catch(_com_error e){<br />
_bstr_t bstrError(e.ErrorMessage());<br />
CString strError=(TCHAR*)bstrError;<br />
AfxMessageBox(strError);<br />
}<br />
}<br />
void Db::First(ADODB::_RecordsetPtr& rs){<br />
try{<br />
rs->MoveFirst();<br />
}catch(_com_error e){<br />
_bstr_t bstrError(e.ErrorMessage());<br />
CString strError=(TCHAR*)bstrError;<br />
AfxMessageBox(strError);<br />
}<br />
}<br />
<br />
bool Db::IsEoF(ADODB::_RecordsetPtr &rs){<br />
try{<br />
return !!rs->GetEOF();<br />
}catch(_com_error e){<br />
_bstr_t bstrError(e.ErrorMessage());<br />
CString strError=(TCHAR*)bstrError;<br />
AfxMessageBox(strError);<br />
return false;<br />
}<br />
}<br />
...................................................<br />
<br />
<br />
on application of metod Last,
<br />
.....................................................................<br />
CString query( FormatString(TEXT("select * from payment_info") ));<br />
ADODB::_RecordsetPtr rs = db.Execute(query);<br />
if (!rs->EOF) {<br />
db.Last(rs);<br />
.....................................................................<br />
error IDispatch error #3108. The other metod all ok.
|
|
|
|
|
I suspect that the recordset is returned as a forward only cursor. You cannot perform a MoveLast() with forward only cursors. Try to change this to a dynamic cursor to resolve the issue.
the last thing I want to see is some pasty-faced geek with skin so pale that it's almost translucent trying to bump parts with a partner - John Simmons / outlaw programmer
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
|
Hey,
I'm quite new with the Java language and now i am trying to use a MySQL database to store data i want to use in the app. I found this tut (http://www.codeproject.com/useritems/MySQL_with_Java.asp) on codeproject.com. But i have one problem. When run the app i get this warning:
An error occured: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
But i already put the Connector/J.jar file in my Java SDK. Who can tell me how i can solve this.
Greetings,
NightFox
|
|
|
|
|
If this question is related to an article on code project then you should ask on the forum related to that article (at the bottom of the article page) rather than here.
|
|
|
|
|
NightFox500 wrote: I found this tut (http://www.codeproject.com/useritems/MySQL_with_Java.asp) on codeproject.com. But i have one problem. When run the app i get this warning:
An error occured: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
But i already put the Connector/J.jar file in my Java SDK. Who can tell me how i can solve this
Presumably the author of the tutorial is your best bet.
the last thing I want to see is some pasty-faced geek with skin so pale that it's almost translucent trying to bump parts with a partner - John Simmons / outlaw programmer
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Hi
I want to copy records from one MS Access database to another MS Access database (the two databases have exactly the same structures and tables). I am using a C# windows application to control this. Overall I do not have any problems except in the one table. In the design view I see that the data type for one of the columns is OLE Object. I loaded the data from that table into a DataTable and checked what datatype that column has in C# and it said System.Byte[].
I did the following to see if there is data in the column (the column header is “olePoints”):
byte[] oleByte = (byte[]) row["olePoints"];<br />
foreach (byte b in oleByte)<br />
{<br />
Console.Write(b.ToString() + " ")<br />
}
It seems fine. I try to write that row to the second MS Access database with the following code:
public static void InsertRecordTest(string destDbase, DataRow sourceRow)<br />
{<br />
try<br />
{<br />
string sql = "INSERT INTO Table1 ( lId, nNumberOfPoints, olePoints )"<br />
+ " VALUES (" + (int)sourceRow["lId"] + ", " <br />
+ (short)sourceRow["nNumberOfPoints"] + ", "<br />
+ (byte[])sourceRow["olePoints"] + ");";<br />
<br />
MSAccess_DAL.ModifyData(destDbase, sql); <br />
}<br />
catch (Exception e)<br />
{<br />
throw (e);<br />
}<br />
}
But it throws an exception with the following method:
Syntax error (missing operator) in query expression ‘System.Byte[]’.
Can anybody give me some ideas?
Thanks
Kobus
|
|
|
|
|
kbalias wrote: Can anybody give me some ideas?
Don't inject values into a SQL Statement. Use parameters. Please read this[^] to defend yourself against attack - Your code is vulnerable.
|
|
|
|
|
HI
I have got some error while connecting Sql Server 2000 from ASP.NEt 2.0
i.e My ASP.NET Application and SqlServer 2000 are avaliable in diffrent machine.I remotly connecting the sql server 2000.
I am getting the following error
"System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Connect(Boolean& useFailoverPartner, Boolean& failoverDemandDone, String host, String failoverPartner, String protocol, SqlInternalConnectionTds connHandler, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject, Boolean aliasLookup) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at _Default.click_Click(Object sender, EventArgs e) in d:\WebSite2\Default.aspx.cs:line 27"
Please send me ur sugessions.
Thanks
Paul
|
|
|
|
|
nesaraja wrote: Please send me ur sugessions.
Send details. Such as your connection string, the name of the machine the instance name of the SQL Server (if there is one).
|
|
|
|
|
I have trouble with deleted row in my database program. When my program starts, I start another program too (MySQLBrowser) and from MySQLBrowser, I delete one row. After that in my Program, I refresh (re-fill) my relevant DataTable but the deleted row still exist in DataTable.
I found out a solution by clearing DataTable first, then re-fill it again. It Works.
Clearing DataTable really works. But, what if there are thousands rows?
Anywayay, here's the code:
I have a Static Class which holds the only DataSet in my program. All DataTables created are stored in that DataSet.
/*******************************************************************/
public static DataSet dsObj = new DataSet(); //the one and only DataSet in my program
public static MySqlConnection connObj = new MySqlConnection(connStr);
//method to add Table or Tables to DataSet
public static void addTblsToDsObj(String tblName)
{
String[] tblArr = tblName.Split(',');
dsObj.EnforceConstraints = false; //I remove constrain before clearing DataTable, because of ForeignKey problem
for (int i = 0; i < tblArr.Length; i++ )
{
if(dsObj.Tables.Contains(tblArr[i])){ //If DataSet has same Table, I clear that table before fill it again
dsObj.Tables[tblArr[i]].Clear();
}
}
dsObj.EnforceConstraints = true; //after needed tables are cleared, I set it to true because I want to load the primary key too.
for (int i = 0; i < tblArr.Length; i++)
{
MySqlDataAdapter daObj = new MySqlDataAdapter("SELECT * FROM " + tblArr[i], connObj);
MySqlCommandBuilder cbObj = new MySqlCommandBuilder(daObj);
daObj.MissingSchemaAction = MissingSchemaAction.AddWithKey;
daObj.Fill(dsObj, tblArr[i]);
}
}
/*******************************************************************/
Now, everytime my Form load a Table from MySQL, I call method addTblsToDsObj(String tblName).
Note that code above works fine with deleted data outside my Program environtment (because if Clear method).
I repeat my question above, what if I have thousand of rows? it means I will clear a lot of unnecessary rows right? so I guess it's not an optimal performance.
Thx for any help.
|
|
|
|
|
Are you deleting the data from the table in your DATA set or sending a SQL command to your db.
If you are deleting a record from a datatable within a dataadapter your have to issue an update commaand to your dataAdapter.
Blog Have I http:\\www.frankkerrigan.com
|
|
|
|
|
I deleted row from MySQLBrowser (or inside MySQL itself) not from my Program. I didn't delete from DataTable because it's inside my Program.
If I add or modify row from MySQLBrowser than in my Program I re-fill DataTable again, the modified or added row is exist on my DataTable. but the problem is when I delete row from MySQLBrowser, then in my program I refresh(re-fill) DataTable, DataTable still contain the deleted row.
|
|
|
|
|
I've been quoting string parameters using single qoutes as follows:
QueryString = "Select * " & _
"From Employees " & _
"Where LastName = '" & EmpLastName & "'"
This works well unless the last name includes a quote, i.e., "Mc'Donald"
So how do you quote the string in visual basic so that Oracle won't hang up on the interior quote?
The same thing happens when you need to query or store feet and inches values ( 9'4" ).
So how would I quote that?
Thanks
P.S., this is for Oracle 8i, if it makes a difference.
|
|
|
|
|
howardjr wrote: This works well unless the last name includes a quote, i.e., "Mc'Donald"
The name McDonald has no apostrophe in it. You may be thinking of a name such as O'Leary.
The simple answer is that you don't inject values in to SQL. It is a security risk and leads to SQL Injection Attacks.
Read this article[^] and it will tell you how to prevent SQL Injection Attacks. And by closing that security hole you solve your current problem.
howardjr wrote: The same thing happens when you need to query or store feet and inches values ( 9'4" ).
You are kidding me when you say you store feet and inches like that?! How do you compare them? These should be stored as a number (probably inches) and the presentation layer of the application reformats the stored information to display as you need it. (Actually, I'm more surprised that people still use feet and inches and not SI units)
|
|
|
|
|
I understand your comment about not normalizing the feet and inches, but the value is stored in a text field as part of an inspection comment, which later I was asked to retrieve. I don't know how the comment was put in so, but the value is in the database, so I'd like to know how to quote the search value.
Comments aside, how do you quote strings that already have quotes in them, either a single or a single and a double quote?
|
|
|
|
|
Perhaps this may help you getting some idea.
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT f1 from t2 WHERE upper(f1) LIKE @criteria";
cmd.Parameters.Add("@criteria", SqlDbType.VarChar).Value = "%'MAIRAJ%";
Where f1 is a varchar type field in table t2 . I tested this against SQL Server 2000, and it works fine.
Parameters in command object provides you a greater flexibility in working with databases (either you want to update, delete, insert, or get data). Plus it also help in preventing SQL Injection Attacks [^]. I will strongly recommend, go for that what Colin Angus Mackay is suggested.
Moreover, .NET provide following types of parameters (among them one may serve you).
OleDbParameter[^]
SqlParameter[^]
OdbcParameter[^]
Regards
________________________________
Success is not something to wait for, its something to work for.
|
|
|
|
|
howardjr wrote: how do you quote strings that already have quotes in them, either a single or a single and a double quote?
Read the article I linked to.
|
|
|
|
|
Thank you for your comments and the links.
It looks like the article on protecting against SQLInjection Attacks covers what I need very nicely. In my case I'm lucky in that I'm the one writing the select statement and dealing with the parameter values, so since I'm not going to Attack my own system , I don't have to worry about this.
Thanks again.
|
|
|
|
|
howardjr wrote: In my case I'm lucky in that I'm the one writing the select statement and dealing with the parameter values, so since I'm not going to Attack my own system , I don't have to worry about this.
Statistically 90% of all attacks are insider jobs. You might need protection from yourself.
|
|
|
|