SQL Server, OLE DB problem
-
Howdy, I'm currently undertaking to convert a c++ application which uses DAO to access an mdb file to using OLE DB to connect to MS SQL Server 2000. The UI for part of the application is split in two, allowing the user to browse records in the top portion [in a table] whilst allowing a specific record to be edited in the bottom portion. To implement this in DAO using a single recordset was simple. The bottom view requests the data of a specific record as well as a bookmark to the record. When the record is to be saved we jump to the record identified by the bookmark, set the data appropriately and call Update(). In between getting the initial data and the save process other records may have been retrieved from the database if the user browsed around in the table view. I am currently trying to move this functionality to OLE DB. According to the MS SQL Server documentation i have a choice of only 2 cursor types if i want read/write access. The cursor type that fits perfectly my needs is the keyset, as it allows bookmarking. The other type (dynamic) doesnt allow bookmarking. I am setting the properties of the command object in order to obtain this keyset cursor. This all seems to work fine when i view a table which has a Primary Key. However, if i try view a table which does not have a primary key, i receive an error when i attempt to Execute() the command. This seems logical because there are no fields from which the keyset can be created, so it fails. :(( How do i get around this? Am i missing something? I am annoyed because it was so simple and smooth with DAO, it somehow allowed me to obtain bookmarks even if there is no key information in the result set. So how can i achieve the same thing using OLE DB and SQL Server? Any suggestions at all would be great! I am about at my wits end! :confused: Thanks!