Description of the Jet 4.0 Database Engine hotfix package for Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 SP2, Windows Vista, Windows Vista SP1, and Windows Server 2008: October …
Symptoms
This article describes the Microsoft Jet 4.0 Database Engine issues that are fixed in the Jet 4.0 Database Engine hotfix package that is dated October 23, 2007.
Resolution
Issues that the hotfix package fixesThis hotfix package fixes the following issue: The original release of this hotfix introduced an issue that also affects Windows Vista Service Pack 1 (SP1) and Windows Server 2008. Inserts and updates may fail in C++ Microsoft Jet DAO MFC (CDAO) applications after you install Windows Vista SP1 or Windows Server 2008. You may receive the following error message:
The field is too small to accept the amount of data that you tried to add. Try inserting or pasting less data. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
952337?(http://support.microsoft.com/kb/952337/) Insertions and updates in C++ Microsoft Jet DAO MFC applications may not work on a computer that is running Windows Vista Service Pack 1 or Windows Server 2008
This hotfix package fixes the following issues that were not previously documented in a Microsoft Knowledge Base article:When you use an Access database or a Jet database that contains tables that are linked to an Oracle 10g database server, a query may return unexpected results. This issue can occur when the query includes a complex SQL statement that has one or more nested JOIN statements. This issue can occur if the Oracle server was upgraded from an earlier version and the Access table links or Jet table links have not been refreshed after the upgrade.When you use a Microsoft Jet 4.0 database, you may receive an error message that resembles the following:
ApplicationName has encountered a problem and needs to close. We are sorry for the inconvenience. If you were in the middle of something, the information you were working on might be lost. Please tell Microsoft about this problem. We have created an error report that you can send to help us improve ApplicationName. We will treat this report as confidential and anonymous. To see what data this error report contains, click here. When you view the data that the error report contains, you see the following list that contains information about some common error signatures. This information may vary depending on the version of Microsoft Office Access or on the application that you use as the front end for the Jet 4.0 database engine.
Collapse this tableExpand this table
Application nameApplication versionModule nameModule versionOffsetMsaccess.exe10.0.4302.0 Msjet40.dll4.0.6218.0 00021eb3 Msaccess.exe10.0.2627.1 Msjet40.dll4.0.6218.000021eb3 Msaccess.exe10.0.2627.1 Msjet40.dll4.0.2927.17 00021ac2Msaccess.exe11.0.6566.0 Msjet40.dll4.0.9025.000021f23 Msaccess.exe11.0.6566.0 Msjet40.dll4.0.8618.0000221f3Msaccess.exe11.0.5614.0 Msjet40.dll4.0.8618.0000221f3Msaccess.exe11.0.6355.0 Msjet40.dll4.0.8618.0000221f3Msaccess.exe11.0.6501.0 Msjet40.dll4.0.8618.0000221f3Msaccess.exe10.0.2627.1 Msjet40.dll4.0.8618.0000221f3When you use a Microsoft Jet 4.0 database, you may receive an error message that resembles the following:
ApplicationName has encountered a problem and needs to close. We are sorry for the inconvenience. If you were in the middle of something, the information you were working on might be lost. Please tell Microsoft about this problem. We have created an error report that you can send to help us improve ApplicationName. We will treat this report as confidential and anonymous. To see what data this error report contains, click here. When you view the data that the error report contains, you see the following list that contains information about some common error signatures. This information may vary depending on the version of Microsoft Office Access or on the application that you use as the front end for the Jet 4.0 database engine.
Collapse this tableExpand this table
Application nameApplication versionModule nameModule versionOffsetMsaccess.exe 11.0.5614.0Msjet40.dll4.0.8618.000044d29Msaccess.exe11.0.6566.0 Msjet40.dll4.0.8618.000044d29Msaccess.exe10.0.6501.0Msjet40.dll4.0.8618.000044d29Msaccess.exe11.0.5614.0 Msjet40.dll4.0.8618.000044d29Msaccess.exe11.0.6355.0 Msjet40.dll4.0.8618.000044d29Msaccess.exe10.0.2627.1 Msjet40.dll4.0.8618.000044d29When you use a Microsoft Jet 4.0 database, you may receive an error message that resembles the following:
ApplicationName has encountered a problem and needs to close. We are sorry for the inconvenience. If you were in the middle of something, the information you were working on might be lost. Please tell Microsoft about this problem. We have created an error report that you can send to help us improve ApplicationName. We will treat this report as confidential and anonymous. To see what data this error report contains, click here. When you view the data that the error report contains, you see the following list that contains information about some common error signatures. This information may vary depending on the version of Microsoft Office Access or on the application that you use as the front end for the Jet 4.0 database engine.
Collapse this tableExpand this table
Application NameApplication versionModule nameModule versionOffsetIexplore.exe 6.0.2800.1106 Dao360.dll 3.60.8618.0 00002c5e Iexplore.exe 6.0.2900.2180 Dao360.dll 3.60.8618.0 00002c5e Iexplore.exe 6.0.2800.1106 Dao360.dll 3.60.8618.0 00002c0c Iexplore.exe 6.0.2900.2180 Dao360.dll 3.60.8618.0 00002bc9 Msaccess.exe11.0.6355.0 hungapp0.0.0.000000000Msaccess.exe11.0.6566.0 Dao360.dll 3.60.8618.0 00002c5e When you use a Microsoft Jet 4.0 database, you may receive an error message that resembles the following:
ApplicationName has encountered a problem and needs to close. We are sorry for the inconvenience. If you were in the middle of something, the information you were working on might be lost. Please tell Microsoft about this problem. We have created an error report that you can send to help us improve ApplicationName. We will treat this report as confidential and anonymous. To see what data this error report contains, click here. When you view the data that the error report contains, you see the following list that contains information about some common error signatures. This information may vary depending on the version of Microsoft Office Access or on the application that you use as the front end for the Jet 4.0 database engine.
Collapse this tableExpand this table
Application NameApplication versionModule nameModule versionOffsetMsaccess.exe11.0.6566.0 Msjet40.dll4.0.9635.00002f736Msaccess.exe10.0.4302.0 Msjet40.dll4.0.6218.000041681 Msaccess.exe10.0.2627.1 Msjet40.dll4.0.6218.000041681 Msaccess.exe10.0.4302.0 Msjet40.dll4.0.7328.00004234b Msaccess.exe11.0.6566.0 Msjet40.dll4.0.9025.040eaec65 Msaccess.exe10.0.2627.1 Msjet40.dll4.0.4431.3000416d1 When you use a Microsoft Jet 4.0 database, you may receive an error message that resembles the following:
ApplicationName has encountered a problem and needs to close. We are sorry for the inconvenience. If you were in the middle of something, the information you were working on might be lost. Please tell Microsoft about this problem. We have created an error report that you can send to help us improve ApplicationName. We will treat this report as confidential and anonymous. To see what data this error report contains, click here. When you view the data that the error report contains, you see the following list that contains information about some common error signatures. This information may vary depending on the version of Microsoft Office Access or on the application that you use as the front end for the Jet 4.0 database engine.
Collapse this tableExpand this table
Application NameApplication versionModule nameModule versionOffsetMsaccess.exe11.0.6355.0 Msjet40.dll4.0.8618.0000193b8 Msaccess.exe11.0.6566.0 Msjet40.dll4.0.8618.0000193b8 Msaccess.exe11.0.5614.0 Msjet40.dll4.0.8618.0000193b8 Msaccess.exe11.0.6355.0 Msjet40.dll4.0.8618.0000193b8 Msaccess.exe11.0.6501.0 Msjet40.dll4.0.8618.0000193b8 Msaccess.exe10.0.2627.1Msjet40.dll4.0.8618.0000193b8 Msaccess.exe10.0.6771.0Msjet40.dll4.0.8618.0000221f3 Msaccess.exe10.0.4302.0 Msjet40.dll4.0.8618.0000221f3
Why Real Article Marketing Works Better That Article Writing Machines
Real article marketing works better than article writing machines. Why should I say that, and what is an article writing machine? Last question first: an article spinner or any other means of artificially generating articles is an article writing machine and is false and is cheating you. First question next: Real article marketing involves offering articles of genuine use to those that read them, and that will get you more visitors than any machine can produce.
Don't get me wrong here: article spinners can create reasonably readable articles - sometimes. However, they are written to fool you, and are designed to create hundreds or even more of articles that say exactly the same thing, the only difference being that synonyms are permutated in order to hopefully avoid duplicate content.
Does this work? Perhaps, for a while.
Is it ethical? No! Absolutely not!
Why?
Because article directories and search engines exist in order to help you to find good and useful information on your niche. How is going to help you if you find hundreds of articles saying exactly the same things but for a few synonyms changed here and there - just enough to fool Google and the directory submission services? It isn't, and this has happened before.
There was a time, when Google Adsense was in its infancy, that people would write one article in such a way that any word could be used as the keyword. Hence:
"Many people are seeking KW online, and the benefit of the internet is that KW can be found whenever you use the keyword KW in your search term. Simply use KW in Google's search box and you will find as much information on KW as you want." And so it goes on. . .
Place any keyword you can think of in place of KW and it fits. Google would list all such articles because of the plethora of keywords they offered and all the people writing the content had to do was to put a few Adsense bocks on their web pages and sit back waiting for the cash to flow in. And flow in it did: software was developed so that thousands of articles written using thousands of keywords could be generated. Simply enter a thousand keywords into a list, and you instantly had a thousand meaningless articles to publish on your mini-sites - one page websites optimized for one keyword each. Some even generated the mini-sites for you - all you had to do was put them online.
However , Google got wise to this and brought in LSI, the latent semantic indexing algorithm for which keywords were less relevant, and the semantics, or use of words in the content determined the listed position - or even if the article would be listed at all. That brought some honesty into article marketing, but it has all started again, only in reverse.
The keywords no longer change: the synonyms do. Articles are written with options for many different words, and the software spins these options into large numbers of articles. The problem is that they are all still saying exactly the same thing, so if you are seeking a page full of varying information about your keyword you won't get it.
Another major problem in using article spinners is that very rarely do two words mean exactly the same thing. Pretty, beautiful and gorgeous are not the same. 'It's pretty good' can be transcribed to 'it's gorgeous good' and many other words meaning nearly the same, but not quite, can make nonsense of sentences. A lot also depends on the literary knowledge of the writer and that's bad enough as it is without this nonsense going on.
Real article marketing involves writing articles manually, and targeting them to the keyword contained in the title. A good writer can write ten different articles, each offering different information on a topic, in the same time taken by somebody to write one with lots of synonyms replacing selected words in the text. Which would you rather have and which is going to provide you with more genuine visitors who are interested in your niche?
Forget the article writing machines, and focus on writing properly and you will benefit. It won't be long before Google deals with these article spinners (I bought one and ditched it after one use - apart from my original the articles were of very poor quality) and then what will their advocates do? They will have to learn to write for themselves, that's what, just as the original keyword spinners had to do when their businesses went bust!
Learn how to write articles and how to use article marketing properly, and you will benefit more than you would have thought possible. Those that know how to use article marketing properly are now making it online, while those that didn't believe in its worth a couple of years ago are now suffering. That's how long it takes to build a permanent article marketing campaign - one to two years, so start writing articles and build yourself a solid future on the real thing, not the pale imitation.
Additional security when calling JSON serialized services
A security feature of ASP.NET web services that are JSON serialized through the ASP.NET AJAX extensions is that they must be requested in a specific way. This is an important deterrent against your services being used in XSS attacks. Scott Guthrie has a great post providing detailed information on the particulars. It boils down to is two things:
- The request must be an HTTP POST request
- The request’s content-type must be: “application/json; charset=utf-8?
When you register and call a web service through ASP.NET AJAX’s ScriptManager, you may safely enjoy blissful ignorance of these requirements. The framework transparently handles everything for you.
However, if you want to use a third party AJAX framework to request the JSON serialized output, you may run into trouble due to these security features.
Remoting
Remoting provides a framework that allows objects to interact one another accross application domains
It is the concept of working in different application domains. In a net connected application http Protocols are stateless by default. To bring in the objects of different types and get their information as which method property is being used and getting them invoked from a remote machine is Remoting. Remoting actually works across different domains and processes and getting information about the objects used by them through the runtime environment.
Benefits of exceptions
Exceptions provide the ability to handle or clean up code in a localized place. Also, they allow clean-up code to execute in case of error. The application becomes easier to write and maintain when clean-up code is in a centralized place.
Also—and maybe more importantly—, exceptions can be used to find bugs within the code; because, the CLR walks up the stack of the thread to get the call history. With this, it is possible to find the location of the failure within the code. Further, it is possible to add additional information within the exception, so that a developer can describe the kind of error more precisely.
The biggest problem with exceptions is performance because of some information overhead. So, they should be used only where preemptive programming is inappropriate. Unfortunately, most developers tend to use exceptions improperly—i.e. catch (Exception e); which will be discussed later—or too seldom, so debugging proves harder.
What is Exception.InnerException in .NET
When an exception X is thrown as a direct result of a previous exception Y, the InnerException property of X should contain a reference to Y.
Use the InnerException property to obtain the set of exceptions that led to the current exception.
You can create a new exception that catches an earlier exception. The code that handles the second exception can make use of the additional information from the earlier exception to handle the error more appropriately.
Suppose that there is a function that reads a file and formats the data from that file. In this example, as the code tries to read the file, an IOException is thrown. The function catches the IOException and throws a FileNotFoundException. The IOException could be saved in the InnerException property of the FileNotFoundException, enabling the code that catches the FileNotFoundException to examine what causes the initial error.
The InnerException property, which holds a reference to the inner exception, is set upon initialization of the exception object.
Re-Throwing Exceptions
When an exception is caught in a catch block, the exception is considered to have been processed and code execution continues as normal. In some situations it is useful to catch the exception but still have it thrown to be caught again. For example, a method may catch all exceptions so that they can be logged and then re-throw the exception to be handled appropriately by the calling function.
When an exception is thrown explicitly using the syntax previously discussed, a new exception object is constructed. This exception object contains only the basic information set by the programmer; information such as the StackTrace property of the original exception is lost. To re-throw the exception and retain this additional information, the throw command is used without specifying an exception object. This is achieved using the following syntax:
The following example code demonstrates how this syntax can be used. For simplicity, the methods called are not defined so this code cannot be directly executed.
What is a good exception?
1. throwing an exception when an invalid parameter is passed to a method. The ArgumentException or one of its derived exception classes should be thrown in this situation.
2. throwing an exception when a call is made to a method that cannot operate because other information must be initialised or other methods must be called beforehand. An InvalidOperationException could be thrown in this case.