/*
* BookmarksApplet.cpp
* Copyright (c) 2009 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL9
// 2009/05/28
// Assumes that environment of SQL Server 2008 and SQLClient1.0
// Please create a database 'Sample' for this example
// and following table 'Person'.
/*
CREATE TABLE Person(
UserId int,
Telephone varchar(128),
Email varchar(255),
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255));
*/
#include <sol/sql/ADOApplet.h>
namespace SOL {
class BookmarksApplet: public ADOApplet {
public:
/**
* Constructor
*/
BookmarksApplet(int argc, const TCHAR** argv)
:ADOApplet(argc, argv)
{
}
public:
~BookmarksApplet()
{
}
public:
/**
* BookmarksApplet main procedure
*/
virtual void run()
{
printf("1 Start\n");
ADOConnection connection = getConnection();
//SQL statement: select
_bstr_t query("SELECT * FROM SolUser");
ADORecordset recordset;
recordset.createInstance();
printf("2 Try to recordset.open()\n");
recordset.open(query, connection.getConnectionPtr(),
ADODB::adOpenStatic, ADODB::adLockReadOnly, ADODB::adCmdText);
printf("3 OK, recordset.open(\"%S\")\n", (const wchar_t*)query);
long count = recordset.getRecordCount();
printf("4 RecordCount=%ld\n", count);
srand((unsigned)time(NULL));
long position = rand() % count;
//Move to a some position
recordset.move(position, _variant_t((short)ADODB::adBookmarkFirst) );
printf("5 OK, recordset.move(%ld)\n", position);
_variant_t bookmark1 = recordset.getBookmark();
printf("6 OK, recordset.getBookmark()\n");
recordset.moveFirst();
long i = 0L;
while(!recordset.getadoEOF()){
try {
_variant_t bookmark2 = recordset.getBookmark();
ADODB::CompareEnum result = recordset.compareBookmarks(
bookmark1, bookmark2);
if (result == ADODB::adCompareEqual) {
ADOEnumNames names;
const char* compared = names.getName(result);
printf("7 Comapred Bookmarks matched %ld %ld = %s\n", i, position, compared);
}
} catch (...) {
printf("Exception: Simply ignore it here\n");
}
i++;
recordset.moveNext();
}
}
};
}
// Console application starts here.
void _tmain(int argc, const TCHAR** argv)
{
try {
BookmarksApplet bookmarksApplet(argc, argv);
bookmarksApplet.start();
} catch(Exception& ex){
ex.dump();
} catch(...){
printf("Exception:Unknown\n");
}
}
|