|
|
Our Hot Pick: Rising Antivirus 2006 - Certified by TUV & Checkmark! Get 10% discount by entering this coupon code: ONDISCOUNT10
In one of my apps i use an access database via OLEDB and that goes well at many customers sites but not on one. There the problem is that sometmes added rows disapear after closing the programm and restarting. The jet file is on the network, the app too and there is only one user. And ofcourse the problem cannot be reproduced. I have told them to update the Jet and MDAC drivers and the Netware client and to disable all kind of cache. Now i wonder, is there a way to force to write to the file (more than a commit transaction) ?
tia,
Erik
|
|
hi Erik,
Erik Visser wrote:
[Quoted Text] > I have told them to update the Jet and MDAC drivers and the Netware client > and to disable all kind of cache.
Is the Netware file cache activated? This can be the source of your lost data.
mfG --> stefan <--
|
|
|
[Quoted Text] > Now i wonder, is there a way to force to write to the file (more than a
If you are using transactions, you can try dbFlushOSCacheWrites. If not, you could try a dummy transaction with dbFlushOSCacheWrites.
Other than turning off caching, there is no easy way to force write to disk. Jet used to automatically write through to disk, but that feature of Win 3.1/DOS 6 was disabled in Win95 when the disk cache was rewritten and replaced. I think that dbFlushOSCacheWrites used an API that forces the entire disk cache to flush, (perhaps that has changed?' and I don't know what affect if any it will have on a network cache and remote file system.
(david)
"Erik Visser" <evisser[ at ]wilg.nl> wrote in message news:eFJvHBY0GHA.4932[ at ]TK2MSFTNGP02.phx.gbl... > In one of my apps i use an access database via OLEDB and that goes well at > many > customers sites but not on one. There the problem is that sometmes added > rows disapear after closing the programm and restarting. The jet file is on > the network, the app too and there is only one user. > And ofcourse the problem cannot be reproduced. > I have told them to update the Jet and MDAC drivers and the Netware client > and to disable all kind of cache. > Now i wonder, is there a way to force to write to the file (more than a > commit transaction) ? > > tia, > > Erik > >
|
|
David, Thans for your answer. AFAIK dbFlushOSCacheWrites is only available within (Access) VBA and not via Ado/OleDB regards,
Erik
<david[ at ]epsomdotcomdotau> schreef in bericht news:uqy6Con0GHA.2516[ at ]TK2MSFTNGP06.phx.gbl...
[Quoted Text] >> Now i wonder, is there a way to force to write to the file (more than a > > If you are using transactions, you can try dbFlushOSCacheWrites. > If not, you could try a dummy transaction with dbFlushOSCacheWrites. > > Other than turning off caching, there is no easy way to force write > to disk. Jet used to automatically write through to disk, but that > feature of Win 3.1/DOS 6 was disabled in Win95 when the disk > cache was rewritten and replaced. I think that dbFlushOSCacheWrites > used an API that forces the entire disk cache to flush, (perhaps that has > changed?' and I don't know what affect if any it will have on a network > cache and remote file system. > > (david) > > > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message > news:eFJvHBY0GHA.4932[ at ]TK2MSFTNGP02.phx.gbl... >> In one of my apps i use an access database via OLEDB and that goes well > at >> many >> customers sites but not on one. There the problem is that sometmes added >> rows disapear after closing the programm and restarting. The jet file is > on >> the network, the app too and there is only one user. >> And ofcourse the problem cannot be reproduced. >> I have told them to update the Jet and MDAC drivers and the Netware >> client >> and to disable all kind of cache. >> Now i wonder, is there a way to force to write to the file (more than a >> commit transaction) ? >> >> tia, >> >> Erik >> >> > >
|
|
Flush OS Cache Writes is a Windows API, called by the jet engine, and the named constant dbFlushOSCacheWrites is a DAO named constant.
I don't know what platform you are using, but I assume that you can call the windows API. I'm not familiar with the Windows File System API. so I can't help you any further there.
I agree that creating a DAO object just to call a Windows File System API would probably not be the right way to do it. If ADO transactions don't have a similar property, I guess you should be asking in a Windows API newsgroup.
(david)
"Erik Visser" <evisser[ at ]wilg.nl> wrote in message news:eum4eUl1GHA.3464[ at ]TK2MSFTNGP03.phx.gbl...
[Quoted Text] > David, > Thans for your answer. > AFAIK dbFlushOSCacheWrites is only available within (Access) VBA and not
via > Ado/OleDB > regards, > > Erik > > <david[ at ]epsomdotcomdotau> schreef in bericht > news:uqy6Con0GHA.2516[ at ]TK2MSFTNGP06.phx.gbl... > >> Now i wonder, is there a way to force to write to the file (more than a > > > > If you are using transactions, you can try dbFlushOSCacheWrites. > > If not, you could try a dummy transaction with dbFlushOSCacheWrites. > > > > Other than turning off caching, there is no easy way to force write > > to disk. Jet used to automatically write through to disk, but that > > feature of Win 3.1/DOS 6 was disabled in Win95 when the disk > > cache was rewritten and replaced. I think that dbFlushOSCacheWrites > > used an API that forces the entire disk cache to flush, (perhaps that has > > changed?' and I don't know what affect if any it will have on a network > > cache and remote file system. > > > > (david) > > > > > > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message > > news:eFJvHBY0GHA.4932[ at ]TK2MSFTNGP02.phx.gbl... > >> In one of my apps i use an access database via OLEDB and that goes well > > at > >> many > >> customers sites but not on one. There the problem is that sometmes added > >> rows disapear after closing the programm and restarting. The jet file is > > on > >> the network, the app too and there is only one user. > >> And ofcourse the problem cannot be reproduced. > >> I have told them to update the Jet and MDAC drivers and the Netware > >> client > >> and to disable all kind of cache. > >> Now i wonder, is there a way to force to write to the file (more than a > >> commit transaction) ? > >> > >> tia, > >> > >> Erik > >> > >> > > > > > >
|
|
Hi David, I am sorry, but there is not a Win32 API function FlushOSCacheWrites. I guess you mean: FlushFileBuffers() ?
Erik <david[ at ]epsomdotcomdotau> schreef in bericht news:%237D87nl1GHA.4176[ at ]TK2MSFTNGP06.phx.gbl...
[Quoted Text] > Flush OS Cache Writes is a Windows API, called by the jet > engine, and the named constant dbFlushOSCacheWrites > is a DAO named constant. > > I don't know what platform you are using, but I assume that > you can call the windows API. I'm not familiar with the Windows > File System API. so I can't help you any further there. > > I agree that creating a DAO object just to call a Windows > File System API would probably not be the right way to > do it. If ADO transactions don't have a similar property, > I guess you should be asking in a Windows API newsgroup. > > (david) > > > > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message > news:eum4eUl1GHA.3464[ at ]TK2MSFTNGP03.phx.gbl... >> David, >> Thans for your answer. >> AFAIK dbFlushOSCacheWrites is only available within (Access) VBA and not > via >> Ado/OleDB >> regards, >> >> Erik >> >> <david[ at ]epsomdotcomdotau> schreef in bericht >> news:uqy6Con0GHA.2516[ at ]TK2MSFTNGP06.phx.gbl... >> >> Now i wonder, is there a way to force to write to the file (more than >> >> a >> > >> > If you are using transactions, you can try dbFlushOSCacheWrites. >> > If not, you could try a dummy transaction with dbFlushOSCacheWrites. >> > >> > Other than turning off caching, there is no easy way to force write >> > to disk. Jet used to automatically write through to disk, but that >> > feature of Win 3.1/DOS 6 was disabled in Win95 when the disk >> > cache was rewritten and replaced. I think that dbFlushOSCacheWrites >> > used an API that forces the entire disk cache to flush, (perhaps that > has >> > changed?' and I don't know what affect if any it will have on a network >> > cache and remote file system. >> > >> > (david) >> > >> > >> > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message >> > news:eFJvHBY0GHA.4932[ at ]TK2MSFTNGP02.phx.gbl... >> >> In one of my apps i use an access database via OLEDB and that goes > well >> > at >> >> many >> >> customers sites but not on one. There the problem is that sometmes > added >> >> rows disapear after closing the programm and restarting. The jet file > is >> > on >> >> the network, the app too and there is only one user. >> >> And ofcourse the problem cannot be reproduced. >> >> I have told them to update the Jet and MDAC drivers and the Netware >> >> client >> >> and to disable all kind of cache. >> >> Now i wonder, is there a way to force to write to the file (more than >> >> a >> >> commit transaction) ? >> >> >> >> tia, >> >> >> >> Erik >> >> >> >> >> > >> > >> >> > >
|
|
I guess.
The named constant dbFlushOSCacheWrites is a DAO named constant. I'm not familiar with the Windows File System API. so I can't help you any further there.
If there is a similar ADO property, it would probably have a GUID (a direct call through to the Jet engine).
(david)
"Erik Visser" <evisser[ at ]wilg.nl> wrote in message news:%23aJDaH$2GHA.4924[ at ]TK2MSFTNGP05.phx.gbl...
[Quoted Text] > Hi David, > I am sorry, but there is not a Win32 API function FlushOSCacheWrites. > I guess you mean: FlushFileBuffers() ? > > > Erik > <david[ at ]epsomdotcomdotau> schreef in bericht > news:%237D87nl1GHA.4176[ at ]TK2MSFTNGP06.phx.gbl... > > Flush OS Cache Writes is a Windows API, called by the jet > > engine, and the named constant dbFlushOSCacheWrites > > is a DAO named constant. > > > > I don't know what platform you are using, but I assume that > > you can call the windows API. I'm not familiar with the Windows > > File System API. so I can't help you any further there. > > > > I agree that creating a DAO object just to call a Windows > > File System API would probably not be the right way to > > do it. If ADO transactions don't have a similar property, > > I guess you should be asking in a Windows API newsgroup. > > > > (david) > > > > > > > > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message > > news:eum4eUl1GHA.3464[ at ]TK2MSFTNGP03.phx.gbl... > >> David, > >> Thans for your answer. > >> AFAIK dbFlushOSCacheWrites is only available within (Access) VBA and
not > > via > >> Ado/OleDB > >> regards, > >> > >> Erik > >> > >> <david[ at ]epsomdotcomdotau> schreef in bericht > >> news:uqy6Con0GHA.2516[ at ]TK2MSFTNGP06.phx.gbl... > >> >> Now i wonder, is there a way to force to write to the file (more than > >> >> a > >> > > >> > If you are using transactions, you can try dbFlushOSCacheWrites. > >> > If not, you could try a dummy transaction with dbFlushOSCacheWrites. > >> > > >> > Other than turning off caching, there is no easy way to force write > >> > to disk. Jet used to automatically write through to disk, but that > >> > feature of Win 3.1/DOS 6 was disabled in Win95 when the disk > >> > cache was rewritten and replaced. I think that dbFlushOSCacheWrites > >> > used an API that forces the entire disk cache to flush, (perhaps that > > has > >> > changed?' and I don't know what affect if any it will have on a network > >> > cache and remote file system. > >> > > >> > (david) > >> > > >> > > >> > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message > >> > news:eFJvHBY0GHA.4932[ at ]TK2MSFTNGP02.phx.gbl... > >> >> In one of my apps i use an access database via OLEDB and that goes > > well > >> > at > >> >> many > >> >> customers sites but not on one. There the problem is that sometmes > > added > >> >> rows disapear after closing the programm and restarting. The jet file > > is > >> > on > >> >> the network, the app too and there is only one user. > >> >> And ofcourse the problem cannot be reproduced. > >> >> I have told them to update the Jet and MDAC drivers and the Netware > >> >> client > >> >> and to disable all kind of cache. > >> >> Now i wonder, is there a way to force to write to the file (more than > >> >> a > >> >> commit transaction) ? > >> >> > >> >> tia, > >> >> > >> >> Erik > >> >> > >> >> > >> > > >> > > >> > >> > > > > > >
|
|
Hi David, Thansk very much for your contribution. I am evaluating FlushFileBuffers() and it seems to work fine, but it is a bit hard to test as the original problem was not reproducable on the office network. Thanks again.,
Erik
<david[ at ]epsomdotcomdotau> schreef in bericht news:Od88NwP3GHA.2228[ at ]TK2MSFTNGP03.phx.gbl...
[Quoted Text] >I guess. > > The named constant dbFlushOSCacheWrites is a DAO named > constant. I'm not familiar with the Windows File System API. > so I can't help you any further there. > > If there is a similar ADO property, it would probably have a > GUID (a direct call through to the Jet engine). > > (david) > > > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message > news:%23aJDaH$2GHA.4924[ at ]TK2MSFTNGP05.phx.gbl... >> Hi David, >> I am sorry, but there is not a Win32 API function FlushOSCacheWrites. >> I guess you mean: FlushFileBuffers() ? >> >> >> Erik >> <david[ at ]epsomdotcomdotau> schreef in bericht >> news:%237D87nl1GHA.4176[ at ]TK2MSFTNGP06.phx.gbl... >> > Flush OS Cache Writes is a Windows API, called by the jet >> > engine, and the named constant dbFlushOSCacheWrites >> > is a DAO named constant. >> > >> > I don't know what platform you are using, but I assume that >> > you can call the windows API. I'm not familiar with the Windows >> > File System API. so I can't help you any further there. >> > >> > I agree that creating a DAO object just to call a Windows >> > File System API would probably not be the right way to >> > do it. If ADO transactions don't have a similar property, >> > I guess you should be asking in a Windows API newsgroup. >> > >> > (david) >> > >> > >> > >> > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message >> > news:eum4eUl1GHA.3464[ at ]TK2MSFTNGP03.phx.gbl... >> >> David, >> >> Thans for your answer. >> >> AFAIK dbFlushOSCacheWrites is only available within (Access) VBA and > not >> > via >> >> Ado/OleDB >> >> regards, >> >> >> >> Erik >> >> >> >> <david[ at ]epsomdotcomdotau> schreef in bericht >> >> news:uqy6Con0GHA.2516[ at ]TK2MSFTNGP06.phx.gbl... >> >> >> Now i wonder, is there a way to force to write to the file (more > than >> >> >> a >> >> > >> >> > If you are using transactions, you can try dbFlushOSCacheWrites. >> >> > If not, you could try a dummy transaction with dbFlushOSCacheWrites. >> >> > >> >> > Other than turning off caching, there is no easy way to force write >> >> > to disk. Jet used to automatically write through to disk, but that >> >> > feature of Win 3.1/DOS 6 was disabled in Win95 when the disk >> >> > cache was rewritten and replaced. I think that dbFlushOSCacheWrites >> >> > used an API that forces the entire disk cache to flush, (perhaps >> >> > that >> > has >> >> > changed?' and I don't know what affect if any it will have on a > network >> >> > cache and remote file system. >> >> > >> >> > (david) >> >> > >> >> > >> >> > "Erik Visser" <evisser[ at ]wilg.nl> wrote in message >> >> > news:eFJvHBY0GHA.4932[ at ]TK2MSFTNGP02.phx.gbl... >> >> >> In one of my apps i use an access database via OLEDB and that goes >> > well >> >> > at >> >> >> many >> >> >> customers sites but not on one. There the problem is that sometmes >> > added >> >> >> rows disapear after closing the programm and restarting. The jet > file >> > is >> >> > on >> >> >> the network, the app too and there is only one user. >> >> >> And ofcourse the problem cannot be reproduced. >> >> >> I have told them to update the Jet and MDAC drivers and the Netware >> >> >> client >> >> >> and to disable all kind of cache. >> >> >> Now i wonder, is there a way to force to write to the file (more > than >> >> >> a >> >> >> commit transaction) ? >> >> >> >> >> >> tia, >> >> >> >> >> >> Erik >> >> >> >> >> >> >> >> > >> >> > >> >> >> >> >> > >> > >> >> > >
|
|
|