|
I'm jsut performing a read operation by pressing a button once in each run
You have to give some details...
rechi
|
|
|
|
|
Its an MDI MFC database app. Its function (its a little test project) is to open a recordset, and read in some data into an Access database. One of the fields is a blob (ole object), several are text, and one is a memo. When the app runs it asks you to browse for the blob you want to store. Automaticallly after this it opens a test data file (.txt), reads in a buffer, and writes it to the memo field. The text fields are filled with hardwired values. Anyways this is the app, which "corrupts" itself after being run from the IDE repeatedly with no code changes! A rebuild all repairs things. Its pretty sporadic and happens unexpectedly.
Thanks for being interested,
ns
|
|
|
|
|
sounds like a memory overwrite to me
check all your buffers are big enuff for what they have to store
"... and so i said to him ... if it don't dance (or code) and you can't eat it either f**k it or throw it away" sonork: 100.18128 8028finder.com
|
|
|
|
|
Add a handler for OnSysCommand() and set a breakpoint in it. That will help you trace thru the crash. The nID your're interested in debugging is SC_CLOSE .
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
The nID your're interested in debugging is SC_CLOSE. <br />
<br />
Sorry but whats an nID and whats SC_CLOSE? Like WM_CLOSE? Is OnSysCommand accessible through the class wizard? I didnt see it in my view class. or in the mainframe class either. Its not in the "Add windows message handler" context menu either...So how shall I add an OnSysCommand handler?
Sorry to bug you so much about stuff thats obvious to you (but a mystery to me!)
thanks
|
|
|
|
|
When you click the "x" button, Windows sends you a WM_SYSCOMMAND message. This message is also sent when you invoke commands from a top level window's system menu (the menu at the top left). To differentiate the different system commands, Windows sets the nID parameter sent along with the message.
The MFC handler for WM_SYSCOMMAND is OnSysCommand . You can add this handler using ClassWizard. The nID is the parameter name and is set to SC_CLOSE to identify that the user clicked the "x" button (or selected "Close" from the system menu).
That's the code path you want to step thru to see where your app is crashing.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
how to edit any column item in a list control in report style?
I can edit only first(zeroth) column items!
|
|
|
|
|
Simply use CListCtrl::SetItem with nSubItem set to the subitem index you wish to change. Example:
LVITEM pItem;
pItem.iItem = 2;
pItem.iSubItem = 3;
pItem.mask = TVIF_TEXT;
pItem.pszText = (LPTSTR)(LPCTSTR)"Your Text";
m_ctlListBox.SetItem(&pItem);
modified 12-Sep-18 21:01pm.
|
|
|
|
|
This solution would also work.
-----
string szNewText(TEXT("new text"));
// Indicates index of row you want to change.
int nLCIndex = 0;
m_ListCtrl.SetItemText(nLCIndex, 0, static_cast<lpctstr>(szNewText.c_str()));
-----
Kuphryn
|
|
|
|
|
hi,
I want to read data in the form of a table from a text file without letting the user to set the coloumns to be read.If a particular column does not exist,I put reasonable default values in that.
How to do that?
Also,how to check if the read data is an int or char* etc?
HElp me.
|
|
|
|
|
You're supposed to know the format of data before you ask for it. Otherwise you should read it as std::string's. You'd use getline and specify the delimiter you've used in your files ( a , or a tab I'd guess ), then you could step over it and put default values into anything that is 0 length, and figure out which fields are numbers.
|
|
|
|
|
The best solution is to use a data structure. You could create this data structure yourself and thus you know the exact format.
Otherwise, you could use the getline and string technique, but then you will need an algorithm to determine the integrity of each role of data in the file.
You could use isdigit() to determine the data type of each byte in the file.
Kuphryn
|
|
|
|
|
In a text field you can put strings, in a number field, numbers, in an OLE Objectfield you can put binary data. In a memo field what type of data is put in? How do you retrieve it? Like for binary data we use GetChunk. So for a memo field, how do you put it in to the Access db and subsequently extract it?
Thanks,
ns
|
|
|
|
|
Use the help file
to read about the difference between
text and memo
|
|
|
|
|
Is there a link to this? All the MSDN memo entries appear to be for FoxPro...
Thanks,
ns
|
|
|
|
|
Use the Access-Helpfile by pressing F1
Use the index tab and type memo
|
|
|
|
|
Ah! I see. I hadnt even thought of Access help!
ns
|
|
|
|
|
Hope it helps you
I'd posted the lines but I've
only some in german
|
|
|
|
|
I know we can do stuff like
Select * from tbl where (Color = 'red') AND (Shape = 'round)
But what if we had an integer instead of a string for a value i.e.
Select * from tbl where (Color = 'red') AND (Shape = 'round)AND (Depth = 100)
Is the above legal? We dont need ' 100'? Just plain 100?
Thanks,
ns
|
|
|
|
|
It's legal,
but
(Shape = 'round')
instead of
(Shape = 'round)
|
|
|
|
|
Yes, and the results will differ. '100' will do a string comparison, so that 100 < 99, and 100 will do a numeric one, so 100 > 99.
|
|
|
|
|
Great! Thats very good to know. Appreciate it,
ns
I wonder why my code crashes. I build the query on the fly, and one fld returns a number which I currrently put in as 'number' and not number, so in the query i have ....and (depth = '100'). This query should clear becauseit shouldnt find any such records, but instead it crashes....
Havent debugged this seriously..
|
|
|
|
|
hi ..
im trying to control my menus from my code segment. i.e i want to disable enable them according to my needs.
the code which im writing works perfectly in the dialog based application but it aint working in my SDI application
CMenu* mmenu=GetMenu();
CMenu* submen=mmenu->GetSubMenu(0);
submen->EnableMenuItem(ID_FILE_OOP,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
kindly tell me a way so that i can use this code for my sdi application .
thankks
looking forward from all the gurus of code
|
|
|
|
|
Have you tried submen->EnableMenuItem(ID_FILE_OOP,MF_BYCOMMAND|MF_GRAYED); ?
rechi
|
|
|
|
|
The problem is that your frame window (in an SDI app created by the wizard, that'll be CMainFrame) is automatically enabling/disabling menus based on whether they have a command handler registered (if there is a command handler available, the menu item will be enabled). The reason the code worked properly in the dialog based application is that there is no frame window in a dialog app.
The best solution is almost always to use an update handler (ON_UPDATE_COMMAND_UI in the message map - look it up in MSDN if you don't know about it) to update the enabled state of your menu item. This is also mentioned in Michael Dunn's C++ FAQ (section 7.1) here at CodeProject.
If you really can't/can't be bothered to use an update handler, you can tell the frame window not to automatically enable/disable menu items - set its m_bAutoMenuEnable property to false. But the update handler method is much better!
"We are the knights who say Ni" (The Knights Who Say Ni)
|
|
|
|