diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-25 20:32:06 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-25 20:32:06 +0300 |
commit | 0d49ea1fe08cf1eab41a00149393a291c65a59d7 (patch) | |
tree | 0391eb09309ca95282e200516937e64d89f3e1bb /mssql/query/driver.cxx | |
parent | fc3fb39c90ab7fe5fccbe3f3bc0eb2645157bb96 (diff) |
Turn odb-tests repository into package for muti-package repositoryodb-tests
Diffstat (limited to 'mssql/query/driver.cxx')
-rw-r--r-- | mssql/query/driver.cxx | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/mssql/query/driver.cxx b/mssql/query/driver.cxx deleted file mode 100644 index 5600c81..0000000 --- a/mssql/query/driver.cxx +++ /dev/null @@ -1,188 +0,0 @@ -// file : mssql/query/driver.cxx -// license : GNU GPL v2; see accompanying LICENSE file - -// Test SQL Server-specific query support aspects. -// - -#include <memory> // std::auto_ptr -#include <cassert> -#include <iostream> - -#include <odb/mssql/database.hxx> -#include <odb/mssql/transaction.hxx> - -#include <common/common.hxx> - -#include "test.hxx" -#include "test-odb.hxx" - -using namespace std; -namespace mssql = odb::mssql; -using namespace mssql; - -int -main (int argc, char* argv[]) -{ - try - { - auto_ptr<database> db (create_specific_database<database> (argc, argv)); - - { - object o1; - object o2; - object o3; - - o1.num = 1; - o1.str = "aaa"; - o1.nstr = L"aaa"; - o1.lstr.assign (1024, 'a'); - o1.lnstr.assign (1024, L'a'); - o1.smoney = 11000; - o1.money = 1.1; - - o2.num = 2; - o2.str = "bbb"; - o2.nstr = L"bbb"; - o2.lstr.assign (1024, 'b'); - o2.lnstr.assign (1024, L'b'); - o2.smoney = 22000; - o2.money = 2.2; - - o3.num = 3; - o3.str = "ccc"; - o3.nstr = L"ccc"; - o3.lstr.assign (1024, 'c'); - o3.lnstr.assign (1024, L'c'); - o3.smoney = 33000; - o3.money = 3.3; - - transaction t (db->begin ()); - db->persist (o1); - db->persist (o2); - db->persist (o3); - t.commit (); - } - - typedef mssql::query<object> query; - typedef odb::result<object> result; - - { - transaction t (db->begin ()); - - // Money and small money. - // - { - result r (db->query<object> (query::smoney < 22000)); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->smoney == 11000); - assert (++i == r.end ()); - } - - { - result r (db->query<object> ("smoney < " + query::_val (2.1F))); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->smoney == 11000); - assert (++i == r.end ()); - } - - { - result r (db->query<object> (query::money < 2.2)); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->money == 1.1); - assert (++i == r.end ()); - } - - { - result r (db->query<object> ("money < " + query::_val (2.2))); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->money == 1.1); - assert (++i == r.end ()); - } - - // Short/long string. - // - { - result r (db->query<object> (query::str < "bbb")); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->str == "aaa"); - assert (++i == r.end ()); - } - - { - result r (db->query<object> ("str < " + query::_val ("bbb", 3))); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->str == "aaa"); - assert (++i == r.end ()); - } - - { - result r (db->query<object> (query::nstr < L"bbb")); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->nstr == L"aaa"); - assert (++i == r.end ()); - } - - { - result r (db->query<object> (query::lstr < string (1024, 'b'))); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->lstr == string (1024, 'a')); - assert (++i == r.end ()); - } - - { - string v (1024, 'b'); - result r (db->query<object> (query::lstr < query::_ref (v))); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->lstr == string (1024, 'a')); - assert (++i == r.end ()); - } - - { - result r (db->query<object> (query::lnstr < wstring (1024, L'b'))); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->lnstr == wstring (1024, L'a')); - assert (++i == r.end ()); - } - - // Test image copying with long data. - // - { - result r (db->query<object> (query::str < "ccc")); - result::iterator i (r.begin ()); - - assert (i != r.end ()); - ++i; - assert (i != r.end ()); - - { - result r (db->query<object> (query::str < "bbb")); - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->str == "aaa"); - assert (++i == r.end ()); - } - - assert (i->str == "bbb"); // Load from copy. - assert (++i == r.end ()); - } - - t.commit (); - } - - } - catch (const odb::exception& e) - { - cerr << e.what () << endl; - return 1; - } -} |