|
I am using ODBC to connect to an ms access mdb file.
When trying to add a new recordset to an empty table, I get an error in CRecordSet::Update and the whole operation fails.
The code looks like this:
<br />
rs.Open(CRecordset::dynaset);<br />
rs.AddNew();<br />
rs.m_ent_id = 1;<br />
rs.m_ent_nom = "String data";<br />
rs.Update();
rs.Close();<br />
I think the reason for this is that when Update() is called and the new record is added, it then tries to return to the previously selected record, which in this case doesn't exist.
Apparently, others have come across this, as can be seen here.
Any suggestions?
Have no fear of perfection - You will never reach it
|
|
|
|
|
I've been fighting ODBC with Access tables for a couple of days, so I'm no expert. But look into the permissions on the target database. Using ADO for this in a webpage, the default is read-only; I have to specify a different access parameter in order to update the db. This same default behavior may be true using ODBC (I don't know that for certain, but I'm looking into it today).
[EDIT]
Never mind. The default for CRecordset is snapshot, which is fully editable.
[/EDIT]
"Another day done - All targets met; all systems fully operational; all customers satisfied; all staff keen and well motivated; all pigs fed and ready to fly" - Jennie A.
|
|
|
|
|
Salvador Dali wrote:
rs.Update(); // This is where the exception is thrown
And that exception is??
Salvador Dali wrote:
I think the reason for this is that when Update() is called and the new record is added, it then tries to return to the previously selected record, which in this case doesn't exist.
CRecordset is smart enough to know that a previous record does not exist. If you'll step through the code, you're apt to see exactly is happening.
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
"Unhandled exception in MyApp.exe (MFC42D.DLL): 0xC0000005: Access violation"
The last functions in the call stack at that point are:
<br />
CTime::GetYear()
RFX_Date(...)<br />
CMyRecordset::DoFieldExchange(...)<br />
CRecordset::LoadFields()<br />
CRecordset::UpdateInsertDelete()<br />
CRecordset::Update()<br />
Have no fear of perfection - You will never reach it
|
|
|
|
|
In the constructor of your CRecordset -derived class, you need to initialize the CTime member variables. Something like:
CMeetSet::CMeetSet(CDatabase* pdb) : CRecordset(pdb)
{
m_strName = _T("");
m_nFields = 2;
m_dtDate = CTime(NULL);
m_nDefaultType = snapshot;
}
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
Thanks David, it seems to work.
I assumed that classwizard handles all the variable initialization needed at class creation.
Have no fear of perfection - You will never reach it
|
|
|
|
|
Salvador Dali wrote:
I assumed that classwizard handles all the variable initialization needed at class creation.
Normally it does, but there is a known issue with time-related variables.
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
Do anybody this under vc++ 6 ?
Thanks
---Ranger---
|
|
|
|
|
Hi,
I am currently struggling getting the title bar color changed. I want to change it to something that matches the dialog colors/bitmaps. Ive read a few articles but i just cant comprehend them.
Any comments or advise is welcome, thanks
|
|
|
|
|
The problem is displaying the text in FlexGrid cell. when number of characters in the cell exceeds 682 characters the text is getting overlapped. I have tried to solve this problem using WordWrap API and SetColWidth API. But I didn't get the solution. If anybody knows the solution, please post the solution.
Ramanan
|
|
|
|
|
I have CHtmlView -based MFC application, and a problem like this: if I open a PDF -document, the application opens Adobe Acrobat reader and shows the document okay, but when I try to scroll it by the code (for example with ScrollToPosition() -method), nothing happens. Is there a way to scroll the picture? Thank you for answers.
|
|
|
|
|
I am able to adjust the Playback volume control through VC++ code. But how can I access the Recording volume control. Any idea??
|
|
|
|
|
yes!it's so easy.first,you check in your debug.adjust,the playback volume control.if,cannot adjust through debug u your adjust through mother f***er....ha..ha..include<iostream..h>
|
|
|
|
|
What is the Difference Between Single Threaded Apartment model and Multi Threaded Apartment Model?
Why CoInitialize specifies the concurrency model as single-thread apartment?
Where can I find more Information about this.
Shenthil
|
|
|
|
|
Essentially, an STA coclass is designed for single-thread. COM protects the COM object via limiting access using a queue.
Under MTA coclass model, the developer is responsible for thread synchronization.
Kuphryn
|
|
|
|
|
if we dynamically allocate memory, it is allocated on heap...
is it just reference of that memory which is in stored in heap or the memory itself??
Muhammad Shoaib Khan
http://geocities.com/lansolution
|
|
|
|
|
Ofcource in the memory itself.
Programming is an art not a skill, every one can be a skilled programmer but not an artist.
|
|
|
|
|
The memory itself is stored in the heap. The function used to allocate the memory (new, malloc, etc) returns a pointer to the location in the heap.
Mike
|
|
|
|
|
How can i increase or decrease the Recording control microhpne volume??
|
|
|
|
|
hi,
can one write an exe that will run on DOS and windows ? I mean in windows it should be able to show message box, dialogs etc.
I am asking this because one program I downloaded from net seems to do this.
regards
hari
Hari Krishnan
|
|
|
|
|
you can display Message Box and call MFC in Win32 Console Applicationscreated in VC++
Muhammad Shoaib Khan
http://geocities.com/lansolution
|
|
|
|
|
That is a Win32 Console Application which you can do GUI in. With DOS applications you can't deal with GUI.
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
|
|
|
|
|
I found that gethostbyname() would be failed if I disconnected the cable from the LAN adapter. However, if I re-connected the cable to the LAN adapter, it worked fine.
More info is:
If the cable is disconnected from the LAN adapter, ipconfig command will return the following:
Ethernet adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Any idea?
Thanks in advance,
lauch.
|
|
|
|
|
getHostByName() retrieves information from the DNS or WINS server. If you unplug the cable it has nowhere to look for the information.
"Another day done - All targets met; all systems fully operational; all customers satisfied; all staff keen and well motivated; all pigs fed and ready to fly" - Jennie A.
|
|
|
|
|
Thanks, Roger Wright.
Then, if I unplug the cable, how can I retrieve the IP address of the local machine?
I have used the following ways, but all they are failed:
1. Use API getaddrinfo()
2. Use API GetAdaptersAddresses()
3. Use INTRFC.exe sample, which in turn use the API WSAIoctl(s,
SIO_GET_INTERFACE_LIST, NULL, 0, &localAddr, sizeof(localAddr),
&bytesReturned, NULL, NULL);
In addition, I know the IP addresses are stored in the regitry. However, I want to use other ways to IP addresses if the cable is unpluged.
thx,
lauch.
|
|
|
|