|
double value=15.1
TableSet->Open();
TableSet->MoveFirst();
while(!TableSet->IsEOF()) {
if(TableSet->m_field1 == id) {
TableSet->Edit();
TableSet->m_field2 += value;
TableSet->Update();
} else {
TableSet->MoveNext();
}
}
When TableSet->m_field2, which is of type float, has decimals the update return error.
When it does not have decimals no error occurs.
Any idea?
|
|
|
|
|
sirtimid wrote:
...the update return error.
And what would that error be?
What does the DoFieldExchange() method look like for the CRecordset -derived class?
Is the corresponding field in the database table a floating-point type?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Is it correct in anyway to declare a same variable (variable type and name same) multiple times in Visual C++ code of single block ?
For example,
void Function( int i, int j )
{
HRESULT hr = E_FAIL;
.
.
.
HRESULT hr = CComObject::GetInterface(...);
.
.
}
Appreciate answers and suggestions. Thanks in advance.
|
|
|
|
|
No you can't. Otherwise the compiler has no clue of which instance you are working with.
-- modified at 10:19 Thursday 8th September, 2005
Seing your post, a thing what you can do is simply not redifine your variable:
HRESULT hRes = E_FAIL;<br />
....<br />
<br />
hRes = ...<br />
|
|
|
|
|
Is there any facility in Visual C++ to satisfy the compiler by specifying compile (or build) options or MACRO definitions to accept redeclaration of variable of similar type in same block ?
|
|
|
|
|
Why would you want ot redeclare the same variable in the same logical code block ?
can't you declare it at the top of the block, and assign ( and re-assign ) values as needed ?
...
int iValue;
...
iValue = 4;
...
iValue = 10;
...
maybe your variable type does not support an = operator ( if it's a class ), you should define one, or do something like :
MyClass* pMyClass;
pMyClass = new MyClass( 5 );
...
delete pMyClass;
pMyClass = new MyClass( 10 );
...
delete pMyClass;
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
It would only be syntactically correct if you did it thusly:
void Function( int i, int j )
{
HRESULT hr = E_FAIL;
.
.
{
HRESULT hr = CComObject::GetInterface(...);
}
.
.
}
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hi, i am using multithreading in my application. I want to use MFC object(view and MainFrame object) in my worker thread. Can anybody tell how to do this.
Thanks.
|
|
|
|
|
What do you mean by "use?" Worker threads (i.e., those without a message pump) should not interact with UI components other than to post a message to the component's owner. The owner is therefore responsible for updating the UI component.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
From within your worker thread you have a handle to its parent. Using this handle you'll be able to use/interact with this MFC object.
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
-- modified at 10:46 Thursday 8th September, 2005
|
|
|
|
|
No, you don't want to use your view and mainframe objects in a worker thread. That will cause a disaster of biblical proportions. Those objects belong to the GUI thread.
The way your work thread will interact with the GUI is by passing the thread a pointer to the view or mainframe window, and then posting messages to this window.
Go to flounder.com and read Dr Newcomber's articles on threading.
|
|
|
|
|
ashtwin wrote:
. I want to use MFC object(view and MainFrame object) in my worker thread. Can anybody tell how to do this.
you will find this article intresting -
http://www.codeproject.com/threads/usingworkerthreads.asp[^]
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
I open the table and I search in it row by row as follows:
TableSet->Open();
TableSet->MoveFirst();
while(!TableSet->IsEOF()) {
if(TableSet->m_field1 == id) {
TableSet->Edit();
TableSet->m_field2 += 10;
TableSet->Update();
} else {
TableSet->MoveNext();
}
}
The problem is that when the program goes in the if statement (the row has been found), and it is the first row of the table, the update operation returns:
'No rows where affected by the update or delete operation'
If this is not the first row the update operation success.
Does anyone know why does this happen?
Thanks in advance
sirtimid
|
|
|
|
|
This seems very inefficient. Rather than iterate through each row of the table, why not use a WHERE clause so that the recordset only contains the row(s) that need(s) updating?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
I have the need within my application to access a set of files, much like the MRU file option.
So what I need to do is store an integer and several strings in the registry, and retrive them when a particular dialog is displayed.
Can anyone point me in the right direction for some sample code as I have never used the registry before.
I will be deploying the aplication so can I test it within Visual Studio IDE and again when deployed.
Many thanks,
|
|
|
|
|
Search for the word registry in the search box, just below "THE CODE PROJECT" at the very top of page.
There are at least 10 different articles (in the VC++ section) here at CodeProject. You will find everything you need, I'm sure.
Good luck.
|
|
|
|
|
There are several registry articles inside codeproject that may explain the registry[^].
A good article is this one[^] that is a class that makes it easier.
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
If you are using MFC, check out the CWinApp::LoadStdProfileSettings() method. You can either use it directly, or look at how it is coded and do something similar. In a key named Recent File List, it creates REG_SZ values named File# where # is a number starting at 1. Those values are then assigned the absolute path of a file.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Can anyone tell me where WITH_ZLIB is hidden in my visual studio 7 project? I know it is being used but I can’t find where it is in order to turn it off.
There is a CMakeLists.txt file, cut and paste from which shows:
# openssl support
OPTION(WITH_OPENSSL "Turn support for openssl on/off" OFF)
FIND_PATH(WITH_OPENSSLINC "include/openssl/ssl.h" ${dcmtk_SOURCE_DIR}/../openssl-0.9.7d)
# zlib support
OPTION(WITH_ZLIB "Turn support for zlib on/off" OFF)
FIND_PATH(WITH_ZLIBINC "include/zlib.h" ${dcmtk_SOURCE_DIR}/../zlib-1.2.1)
(The WITH_ZLIB was turned ON, but I changed it to OFF and this had no effect.)
I know it is being used because I see it in BuildLog.htm, (see below “WITH_ZLIB”):
Creating temporary file "c:\Ilan\dcmtk-3.5.3\dcmdata\libsrc\Debug\RSP000001.rsp" with contents
[
/Od /I "../../config\include" /I "../../dcmdata\include" /I "../../ofstd\include" /I "../../../zlib-1.2.1\include" /D "_DEBUG" /D "WIN32" /D "_LIB" /D "_REENTRANT" /D "WITH_LIBPNG" /D "WITH_LIBTIFF" /D "WITH_ZLIB" /D "dcmdata_EXPORTS" /D "CMAKE_INTDIR=\"Debug\"" /D "_MBCS" /FD /EHsc /RTC1 /MTd /GS /YX"stdafx.h" /Fp".\Debug/dcmdata.pch" /Fo".\Debug/dcxfer1.obj" /Fd".\Debug/" /W3 /c /Z7
".\dcxfer.cc"
]
Creating command line "cl.exe @"c:\Ilan\dcmtk-3.5.3\dcmdata\libsrc\Debug\RSP000001.rsp" /nologo"
I looked at the Properties window and the Options, but I simply can’t find who is defining this variable.
Can anyone tell me what I’m missing?
Thanks,
Ilan
|
|
|
|
|
Hi folks,
I am working on an application that cross-links path names and keywords.
Currently I am using two maps that hold the information:
map<string, set<string> > m_path2keywords;
map<string, set<string> > m_keyword2paths;
While I am filling these maps with information they allocate much more memory than I expected (20.000 files -> more than 200MB of RAM). After minimizing and restoring the window that presents the data the allocated memory drops to less than 5MB!?!
I guess the previous waste of RAM is related to the map container.
So, would it be better to deal with one big map than to use two ?
How big is the organizational overhead of the map container ?
Are there any memory saving alternatives to the STL map container ?
Thanks in advance,
Achim Klein
We can do no great things, only small things with great love. - Mother Theresa
|
|
|
|
|
The problem must reside in the layout of your data. What are those keywords and how many of those have you got for each path, on average? The overhead from the containers should be minimal, but the amount of (duplicate) data in there could be huge.
|
|
|
|
|
Hi Niklas,
thank you for your feedback.
What are those keywords
For example
Path = C:\My Files\Sun.jpg
Keywords:
how many of those have you got for each path
Hard to say, but to give you a number, each path has about 10 keywords on average.
The problem must reside in the layout of your data.
Are there any more sophisticated ways to 'cross-link' data ?
Regards
We can do no great things, only small things with great love. - Mother Theresa
|
|
|
|
|
...coming to think of it, this layout is really expensive. One solution would be to use four containers instead of two.
set<string> allMyKeyWords;<br />
set<string> allMyPaths;<br />
map< set<string>::iterator, set< set<string>::iterator > > m_path2keywords;<br />
map< set<string>::iterator, set< set<string>::iterator > > m_keyword2paths;<br /> Thus, in the maps you will only store iterators to the external sets (pointers to strings) rather then storing all strings hundreds (?) of times.
|
|
|
|
|
Aargh, formating formating
set<string> allMyKeyWords;<br />
set<string> allMyPaths;<br />
map< set<string>::iterator, set< set<string>::iterator > > m_path2keywords;<br />
map< set<string>::iterator, set< set<string>::iterator > > m_keyword2paths;<br />
|
|
|
|
|
Yes, this is really an interesting alternative.
What happens if I delete any items from these two sets ?
Are the remaining iterators (that are stored in the maps) still valid ?
We can do no great things, only small things with great love. - Mother Theresa
|
|
|
|