|
Can i use the insert query in d foll way with a variable..where
char* url="asdf";
How else do i insert value into MS Access DB which is contained in a variable?
_Commandptr m_pCommand;
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->CommandText = "INSERT INTO wcs(URL,Object_size,No_of_accesses,Transfer_cost,Group_no,Hvalue,Location)
VALUES(url,7,6,8,'hi')";
m_pCommand->CommandType=adCmdText;
m_pCommand->ActiveConnection = m_pConnection;
_variant_t vRecords;
m_pCommand->Execute(&vRecords,NULL,adCmdText);
|
|
|
|
|
Basically, that's just string manipulation routine. I don't know the type of _Commandptr::CommandText but take a look at sprintf (for a char string). If it is a std::string, then you can simply use a concatenation (+ symbole) to concatenate several strings.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
Cedric Moonen wrote: If it is a std::string, then you can simply use a concatenation (+ symbole) to concatenate several strings.
concatenate?????i want to insert d value from url into access DB..so wher does concatenate come in2 d picture??
url is a user variable!
|
|
|
|
|
Yes, concatenate. You have to make a difference between the DB instruction (or whatever you call it) and how it is represented. In your case, what you are doing is executing a SQL (I think) commands that is contained in a string. But the way you 'construct' the string can be done in whatever way you want.
Let's take a simple example: suppose you want to select something from a database (very simple example). The 'thing' you want to select is contained in a variable:
std::string ThingToSelect = "Name";
So, in fact, you want to execute a command that looks like: "SELECT Name from table" and your "Name" is in fact contained in a variable.
So, just construct your string this way:
std::string Command = "SELECT" + ThingToSelect + "from table";
And you get exactly the same.
See, it is simply string manipulation and has nothing to do with your database.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
U mean lik this...rt?
But dis dint work either...some prob here?or any related glitch?
CString newurl=url;
CString string="INSERT INTO wcs(URL,Object_size,No_of_accesses,Transfer_cost,Group_no,Hvalue,Location)
VALUES("+newurl+",7,6,8,'hi')";
m_pCommand->CommandText = (_bstr_t)string;
|
|
|
|
|
shuchigo_jane wrote: But dis dint work either
Be more specific. What do you mean by 'don't work' ?
Also, use your debugger to see if the string is correctly written.
shuchigo_jane wrote: m_pCommand->CommandText = (_bstr_t)string;
Also for that, I don't think the cast to a (_bstr_t)string will work. What is the type of CommandText ?
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
dint work=throws an exception...
Cedric Moonen wrote: What is the type of CommandText ?
From msdn!!!...Sets or returns a String value containing a provider command, such as an SQL statement, a table name, or a stored procedure call. Default is "" (zero-length string).
Also if not cast,it gives a casting error.
|
|
|
|
|
And, did you check with your debugger to see if the string is properly 'spelled' before calling execute ? If you made spelled incorrectly, I cannot help you. One thing you have to try: just for a test, execute the same string but hard-code it (so, write it completely yourself with the url and everything). If you get an exception, then it means that the string is not properly spelled.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
worked jus fine with a hard coded string...
prob arose only wen we wanted to insert a value from a variable..
|
|
|
|
|
Geez, third time I ask you to use your debugger ! Check the format of your string if it matches exactly the same format that your hard-coded string.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
Try:
string.Format("INSERT INTO(URL,Object_size,No_of_accesses,Transfer_cost,Group_no,Hvalue,Location) VALUES(\"%s\",7,6,8,\"hi\")", url);
m_pCommand->CommandText = string;
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I think you have to investigate the CreateParameter and Parameters members of Command object.
I suppose you have to use "@url " in the command text, and then use something like this:
_ParameterPtr param = m_pCommand->CreateParameter("url", adVarChar, adParamInput, url.length(), url.c_str());
m_pCommand-> Parameters->Append(param);
This is just my guess.
|
|
|
|
|
Below given is the fixed code. Copy this and try.
<br />
CString url="asdf";<br />
_Commandptr m_pCommand;<br />
m_pCommand.CreateInstance(__uuidof(Command));<br />
<br />
CString strSql = _T("INSERT INTO wcs(URL,Object_size,No_of_accesses,Transfer_cost,Group_no,Hvalue,Location) VALUES('") + url + _T("',7,6,8,'hi')");<br />
<br />
m_pCommand->CommandText = _bastr_t(strSql);<br />
<br />
m_pCommand->CommandType=adCmdText;<br />
m_pCommand->ActiveConnection = m_pConnection;<br />
_variant_t vRecords;<br />
m_pCommand->Execute(&vRecords,NULL,adCmdText);
cheers...milton kb
|
|
|
|
|
cheeeeeeeeeerrrrrrrrrssss.....thanx a bunch...it worked...
|
|
|
|
|
Please note that the solution based on string concatenation sometime will give SQL errors, in another cases will allow someone to manipulate your database in un-authorized manner.
For instance, suppose the url variable is a string that is entered by the user. If he/shi enters "http://www.codeproject.com" everything is fine, but if enter "http://www.codeproject.com?user=’abc’", then your insert operation will fail. (Guess why).
If the user enters something like "’,1,2,3,’bad string’) --", then instead of your 7, 6, 8 and 'hi' values, database will be filled with 1, 2, 3 and ’bad string’ values.
This technique is called SQL injection. It can allow bad people to discover private information like passwords, or even delete the entire database.
You can read about this here:
|
|
|
|
|
How to obtain file header for a file ?
Thanks in advance
Rin
|
|
|
|
|
|
|
There is no such thing as a general file header!
There are general file attributes, you can get them with GetFileSize(), GetFileType(), GetFileTime() e.t.c.
Another thing is that files used by certain applications can have a file header. In that case, the header is specific to the application that created the file in question.
|
|
|
|
|
|
|
This trouble is fixed, thanks kakan
|
|
|
|
|
How can i change the dialog box background color dynamically.
|
|
|
|
|
you ca use WM_CTLCOLOR or WM_PAINT
whitesky
|
|
|
|
|
But i want to chage the background depending on the color specified dynamically. I am getting an exception when i post the WM_CTLCOLOR message .
Thanks for ur reply,
|
|
|
|
|