You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(11) |
Oct
(17) |
Nov
(62) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(25) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(9) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: David F. <dav...@us...> - 2006-06-28 11:28:02
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv28418 Modified Files: test_dbapi.py Log Message: moved other tests over from test_bugs Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- test_dbapi.py 28 Jun 2006 11:07:34 -0000 1.6 +++ test_dbapi.py 28 Jun 2006 11:27:59 -0000 1.7 @@ -70,6 +70,35 @@ assert len(resultset1) == len(resultset2) == 5 assert resultset1 == resultset2 + def test_blobs(self): + """Blobs are handled correctly""" + self.execute_query("create table %s(x text, y text)" % self.tablename) + insertsql = "insert into %s(x, y) values('test', 'me')" % self.tablename + for n in range(5): + self.execute_query(insertsql) + selectsql = "select * from %s" % self.tablename + resultset = self.execute_query(selectsql).fetchall() + assert resultset != None + assert len(resultset) == 5 + assert resultset[0][0] == 'test' + + def test_alter_table(self): + """tests altering a table and adding new columns""" + self.execute_query("create table %s(x char(20), y char(20))" % self.tablename) + insertsql = "insert into %s(x, y) values('test', 'me')" % self.tablename + for n in range(5): + self.execute_query(insertsql) + selectsql = "select * from %s" % self.tablename + resultset = self.execute_query(selectsql).fetchall() + assert len(resultset) == 5 + altersql = "alter table %s add z char(20)" % self.tablename + # TODO: work out why this is failing + self.execute_query(altersql) + insertsql = "insert into %s(x, y, z) values('test', 'me', 'please')" % self.tablename + self.execute_query(selectsql) + resultset2 = self.execute_query(selectsql).fetchall() + assert resultset1 != resultset2 + class Test_MySQLdb(MySqlTester): """Uses MySQLdb as the DBAPI provider (see http://mysql-python.sourceforge.net/) - doesn't use OLE DB, as reference If any tests fail here, we shouldn't expect them to neccessarily pass when using MyOleDb, it may be a mysql issue""" |
From: David F. <dav...@us...> - 2006-06-28 11:07:38
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv19474 Modified Files: test_dbapi.py Log Message: added setup and teardown methods to drop tables to ensure consistency moved repeat query test over from test_bugs.py Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- test_dbapi.py 28 Jun 2006 10:59:33 -0000 1.5 +++ test_dbapi.py 28 Jun 2006 11:07:34 -0000 1.6 @@ -26,30 +26,50 @@ cursor.execute(query) return cursor - def test_simple(self): - """runs a simple insert and checks that a select returns the expected results""" + def setup_method(self, method): + """ensures table for test method doesn't exist""" + self.tablename = method.__name__ + self.safedrop(self.tablename) + + def teardown_method(self, method): + """ensures method table is dropped""" + self.safedrop(self.tablename) + + def safedrop(self, tablename): + """drops the given table name, ignoring errors""" try: - self.execute_query("drop table test_simple") + self.execute_query("drop table %s" % tablename) except Exception, e: pass - self.execute_query("create table test_simple(x text, y text)") - self.execute_query("insert into test_simple(x, y) values('test', 'me')") - results = self.execute_query("select x, y from test_simple").fetchall() + + def test_simple(self): + """runs a simple insert and checks that a select returns the expected results""" + self.execute_query("create table %s(x text, y text)" % self.tablename) + self.execute_query("insert into %s(x, y) values('test', 'me')" % self.tablename) + results = self.execute_query("select x, y from %s" % self.tablename).fetchall() assert len(results) == 1 assert list(results[0]) == ["test", "me"] def test_count_type(self): """checks that select count(*) returns an integer""" - try: - self.execute_query("drop table test_count_type") - except Exception, e: - pass - self.execute_query("create table test_count_type(x text, y text)") - self.execute_query("insert into test_count_type(x, y) values('test', 'me')") - results = self.execute_query("select count(*) from test_count_type").fetchall() + self.execute_query("create table %s(x text, y text)" % self.tablename) + self.execute_query("insert into %s(x, y) values('test', 'me')" % self.tablename) + results = self.execute_query("select count(*) from %s" % self.tablename).fetchall() assert len(results) == 1 assert list(results[0]) == [1] + def test_repeat_query(self): + """tests that running the same query twice produces the same number of rows""" + self.execute_query("create table %s(x char(20), y char(20));" % self.tablename) + insertsql = "insert into %s(x, y) values('test', 'me');" % self.tablename + for n in range(5): + self.execute_query(insertsql) + selectsql = "select * from %s" % self.tablename + resultset1 = self.execute_query(selectsql).fetchall() + resultset2 = self.execute_query(selectsql).fetchall() + assert len(resultset1) == len(resultset2) == 5 + assert resultset1 == resultset2 + class Test_MySQLdb(MySqlTester): """Uses MySQLdb as the DBAPI provider (see http://mysql-python.sourceforge.net/) - doesn't use OLE DB, as reference If any tests fail here, we shouldn't expect them to neccessarily pass when using MyOleDb, it may be a mysql issue""" |
From: David F. <dav...@us...> - 2006-06-28 10:59:36
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv15693 Modified Files: test_dbapi.py Log Message: added MySQLdb test interface this driver uses mysql client libraries directly, so shuold be unaffected by any ole db bugs it can therefore be used as a reference... Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- test_dbapi.py 28 Jun 2006 10:55:12 -0000 1.4 +++ test_dbapi.py 28 Jun 2006 10:59:33 -0000 1.5 @@ -50,6 +50,19 @@ assert len(results) == 1 assert list(results[0]) == [1] +class Test_MySQLdb(MySqlTester): + """Uses MySQLdb as the DBAPI provider (see http://mysql-python.sourceforge.net/) - doesn't use OLE DB, as reference + If any tests fail here, we shouldn't expect them to neccessarily pass when using MyOleDb, it may be a mysql issue""" + try: + import MySQLdb as driver + except ImportError: + driver = None + disabled = (driver is None) + + def setup_db(cls): + return cls.driver.connect(user=cls.connection.username, passwd=cls.connection.password, db=cls.connection.database) + setup_db = classmethod(setup_db) + class Test_j5_ADO(MySqlTester): """Uses j5.Database.ADO.PyADO as the DBAPI provider""" try: |
From: David F. <dav...@us...> - 2006-06-28 10:55:16
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv13924 Modified Files: test_dbapi.py Log Message: rats, committed DOS line endings - removing Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- test_dbapi.py 28 Jun 2006 10:54:20 -0000 1.3 +++ test_dbapi.py 28 Jun 2006 10:55:12 -0000 1.4 @@ -1,90 +1,90 @@ -#!/usr/bin/env python - -"""py.test tests for MyOLEDB using a Python DB-API compliant driver -Will attempt to import various drivers and run tests on any imported successfully""" - -class MySqlTester: - """base class for testing mysql over dbapi""" - class connection: - """connection details for test""" - username = "mytest" - password = "" - database = "mytest" - provider = "MySQLProv" - - def setup_class(cls): - """sets up the database on cls.db""" - cls.db = cls.setup_db() - - def teardown_class(cls): - """closes the database""" - cls.db.close() - - def execute_query(self, query): - """executes the given sql query and returns the cursor""" - cursor = self.db.cursor() - cursor.execute(query) - return cursor - - def test_simple(self): - """runs a simple insert and checks that a select returns the expected results""" - try: - self.execute_query("drop table test_simple") - except Exception, e: - pass - self.execute_query("create table test_simple(x text, y text)") - self.execute_query("insert into test_simple(x, y) values('test', 'me')") - results = self.execute_query("select x, y from test_simple").fetchall() - assert len(results) == 1 - assert list(results[0]) == ["test", "me"] - - def test_count_type(self): - """checks that select count(*) returns an integer""" - try: - self.execute_query("drop table test_count_type") - except Exception, e: - pass - self.execute_query("create table test_count_type(x text, y text)") - self.execute_query("insert into test_count_type(x, y) values('test', 'me')") - results = self.execute_query("select count(*) from test_count_type").fetchall() - assert len(results) == 1 - assert list(results[0]) == [1] - -class Test_j5_ADO(MySqlTester): - """Uses j5.Database.ADO.PyADO as the DBAPI provider""" - try: - from j5.Database.ADO import PyADO as driver - except ImportError: - driver = None - disabled = (driver is None) - - def setup_db(cls): - return cls.driver.connect(None, {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database}, cls.connection.provider) - setup_db = classmethod(setup_db) - -class Test_jToolkit_ADO(MySqlTester): - """Uses jToolkit.database.PyADO as the DBAPI provider (see http://jtoolkit.sourceforge.net/)""" - try: - from jToolkit.data import PyADO as driver - except ImportError: - driver = None - disabled = (driver is None) - - def setup_db(cls): - return cls.driver.connect(None, user=cls.connection.username, password=cls.connection.password, database=cls.connection.database, provider=cls.connection.provider) - setup_db = classmethod(setup_db) - -class Test_adodbapi(MySqlTester): - """Uses adodbapi as the DBAPI provider (see http://adodbapi.sourceforge.net/)""" - try: - import adodbapi as driver - except ImportError: - driver = None - disabled = (driver is None) - - def setup_db(cls): - params = {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database, "Provider": cls.connection.provider} - paramstr = "; ".join(["%s=%s" % (key, value) for key, value in params.iteritems()]) - return cls.driver.connect(paramstr) - setup_db = classmethod(setup_db) - +#!/usr/bin/env python + +"""py.test tests for MyOLEDB using a Python DB-API compliant driver +Will attempt to import various drivers and run tests on any imported successfully""" + +class MySqlTester: + """base class for testing mysql over dbapi""" + class connection: + """connection details for test""" + username = "mytest" + password = "" + database = "mytest" + provider = "MySQLProv" + + def setup_class(cls): + """sets up the database on cls.db""" + cls.db = cls.setup_db() + + def teardown_class(cls): + """closes the database""" + cls.db.close() + + def execute_query(self, query): + """executes the given sql query and returns the cursor""" + cursor = self.db.cursor() + cursor.execute(query) + return cursor + + def test_simple(self): + """runs a simple insert and checks that a select returns the expected results""" + try: + self.execute_query("drop table test_simple") + except Exception, e: + pass + self.execute_query("create table test_simple(x text, y text)") + self.execute_query("insert into test_simple(x, y) values('test', 'me')") + results = self.execute_query("select x, y from test_simple").fetchall() + assert len(results) == 1 + assert list(results[0]) == ["test", "me"] + + def test_count_type(self): + """checks that select count(*) returns an integer""" + try: + self.execute_query("drop table test_count_type") + except Exception, e: + pass + self.execute_query("create table test_count_type(x text, y text)") + self.execute_query("insert into test_count_type(x, y) values('test', 'me')") + results = self.execute_query("select count(*) from test_count_type").fetchall() + assert len(results) == 1 + assert list(results[0]) == [1] + +class Test_j5_ADO(MySqlTester): + """Uses j5.Database.ADO.PyADO as the DBAPI provider""" + try: + from j5.Database.ADO import PyADO as driver + except ImportError: + driver = None + disabled = (driver is None) + + def setup_db(cls): + return cls.driver.connect(None, {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database}, cls.connection.provider) + setup_db = classmethod(setup_db) + +class Test_jToolkit_ADO(MySqlTester): + """Uses jToolkit.database.PyADO as the DBAPI provider (see http://jtoolkit.sourceforge.net/)""" + try: + from jToolkit.data import PyADO as driver + except ImportError: + driver = None + disabled = (driver is None) + + def setup_db(cls): + return cls.driver.connect(None, user=cls.connection.username, password=cls.connection.password, database=cls.connection.database, provider=cls.connection.provider) + setup_db = classmethod(setup_db) + +class Test_adodbapi(MySqlTester): + """Uses adodbapi as the DBAPI provider (see http://adodbapi.sourceforge.net/)""" + try: + import adodbapi as driver + except ImportError: + driver = None + disabled = (driver is None) + + def setup_db(cls): + params = {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database, "Provider": cls.connection.provider} + paramstr = "; ".join(["%s=%s" % (key, value) for key, value in params.iteritems()]) + return cls.driver.connect(paramstr) + setup_db = classmethod(setup_db) + |
From: David F. <dav...@us...> - 2006-06-28 10:54:22
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv13490 Modified Files: test_dbapi.py Log Message: added comments, spacing moved imports inside driver test classes for clarity Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- test_dbapi.py 28 Jun 2006 10:26:50 -0000 1.2 +++ test_dbapi.py 28 Jun 2006 10:54:20 -0000 1.3 @@ -3,36 +3,31 @@ """py.test tests for MyOLEDB using a Python DB-API compliant driver Will attempt to import various drivers and run tests on any imported successfully""" -try: - from jToolkit.data import PyADO as jToolkit_PyADO -except ImportError: - jToolkit_PyADO = None - -try: - from j5.Database.ADO import PyADO as j5_PyADO -except ImportError: - j5_PyADO = None - -try: - import adodbapi -except ImportError: - adodbapi = None - -class MySqlADOTester: +class MySqlTester: + """base class for testing mysql over dbapi""" class connection: + """connection details for test""" username = "mytest" password = "" database = "mytest" provider = "MySQLProv" + def setup_class(cls): + """sets up the database on cls.db""" cls.db = cls.setup_db() + def teardown_class(cls): + """closes the database""" cls.db.close() + def execute_query(self, query): + """executes the given sql query and returns the cursor""" cursor = self.db.cursor() cursor.execute(query) return cursor + def test_simple(self): + """runs a simple insert and checks that a select returns the expected results""" try: self.execute_query("drop table test_simple") except Exception, e: @@ -42,7 +37,9 @@ results = self.execute_query("select x, y from test_simple").fetchall() assert len(results) == 1 assert list(results[0]) == ["test", "me"] + def test_count_type(self): + """checks that select count(*) returns an integer""" try: self.execute_query("drop table test_count_type") except Exception, e: @@ -53,23 +50,38 @@ assert len(results) == 1 assert list(results[0]) == [1] -class Test_j5_ADO(MySqlADOTester): - driver = j5_PyADO - disabled = (j5_PyADO is None) +class Test_j5_ADO(MySqlTester): + """Uses j5.Database.ADO.PyADO as the DBAPI provider""" + try: + from j5.Database.ADO import PyADO as driver + except ImportError: + driver = None + disabled = (driver is None) + def setup_db(cls): return cls.driver.connect(None, {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database}, cls.connection.provider) setup_db = classmethod(setup_db) -class Test_jToolkit_ADO(MySqlADOTester): - driver = jToolkit_PyADO - disabled = (jToolkit_PyADO is None) +class Test_jToolkit_ADO(MySqlTester): + """Uses jToolkit.database.PyADO as the DBAPI provider (see http://jtoolkit.sourceforge.net/)""" + try: + from jToolkit.data import PyADO as driver + except ImportError: + driver = None + disabled = (driver is None) + def setup_db(cls): return cls.driver.connect(None, user=cls.connection.username, password=cls.connection.password, database=cls.connection.database, provider=cls.connection.provider) setup_db = classmethod(setup_db) -class Test_adodbapi(MySqlADOTester): - driver = adodbapi - disabled = (adodbapi is None) +class Test_adodbapi(MySqlTester): + """Uses adodbapi as the DBAPI provider (see http://adodbapi.sourceforge.net/)""" + try: + import adodbapi as driver + except ImportError: + driver = None + disabled = (driver is None) + def setup_db(cls): params = {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database, "Provider": cls.connection.provider} paramstr = "; ".join(["%s=%s" % (key, value) for key, value in params.iteritems()]) |
From: David F. <dav...@us...> - 2006-06-28 10:26:54
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv1319 Modified Files: test_dbapi.py Log Message: added support for adodbapi (adodbapi.sf.net) this returns results in tuples, not lists, so handle accordingly make common connection params set driver as attribute more regularly Index: test_dbapi.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_dbapi.py,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- test_dbapi.py 28 Jun 2006 10:06:32 -0000 1.1 +++ test_dbapi.py 28 Jun 2006 10:26:50 -0000 1.2 @@ -13,7 +13,17 @@ except ImportError: j5_PyADO = None +try: + import adodbapi +except ImportError: + adodbapi = None + class MySqlADOTester: + class connection: + username = "mytest" + password = "" + database = "mytest" + provider = "MySQLProv" def setup_class(cls): cls.db = cls.setup_db() def teardown_class(cls): @@ -30,7 +40,8 @@ self.execute_query("create table test_simple(x text, y text)") self.execute_query("insert into test_simple(x, y) values('test', 'me')") results = self.execute_query("select x, y from test_simple").fetchall() - assert results == [["test", "me"]] + assert len(results) == 1 + assert list(results[0]) == ["test", "me"] def test_count_type(self): try: self.execute_query("drop table test_count_type") @@ -39,19 +50,29 @@ self.execute_query("create table test_count_type(x text, y text)") self.execute_query("insert into test_count_type(x, y) values('test', 'me')") results = self.execute_query("select count(*) from test_count_type").fetchall() - assert results == [[1]] + assert len(results) == 1 + assert list(results[0]) == [1] class Test_j5_ADO(MySqlADOTester): - PyADO = j5_PyADO + driver = j5_PyADO disabled = (j5_PyADO is None) def setup_db(cls): - return cls.PyADO.connect(None, {"User ID": "mytest", "Password": "", "Data Source": "mytest"}, "MySQLProv") + return cls.driver.connect(None, {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database}, cls.connection.provider) setup_db = classmethod(setup_db) class Test_jToolkit_ADO(MySqlADOTester): - PyADO = jToolkit_PyADO + driver = jToolkit_PyADO disabled = (jToolkit_PyADO is None) def setup_db(cls): - return cls.PyADO.connect(None, user="mytest", password="", database="mytest", provider="MySQLProv") + return cls.driver.connect(None, user=cls.connection.username, password=cls.connection.password, database=cls.connection.database, provider=cls.connection.provider) + setup_db = classmethod(setup_db) + +class Test_adodbapi(MySqlADOTester): + driver = adodbapi + disabled = (adodbapi is None) + def setup_db(cls): + params = {"User ID": cls.connection.username, "Password": cls.connection.password, "Data Source": cls.connection.database, "Provider": cls.connection.provider} + paramstr = "; ".join(["%s=%s" % (key, value) for key, value in params.iteritems()]) + return cls.driver.connect(paramstr) setup_db = classmethod(setup_db) |
From: David F. <dav...@us...> - 2006-06-28 10:06:39
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv24895 Added Files: test_dbapi.py Log Message: added tests using dbapi, using either jtoolkit or j5 as PyADO driver --- NEW FILE: test_dbapi.py --- #!/usr/bin/env python """py.test tests for MyOLEDB using a Python DB-API compliant driver Will attempt to import various drivers and run tests on any imported successfully""" try: from jToolkit.data import PyADO as jToolkit_PyADO except ImportError: jToolkit_PyADO = None try: from j5.Database.ADO import PyADO as j5_PyADO except ImportError: j5_PyADO = None class MySqlADOTester: def setup_class(cls): cls.db = cls.setup_db() def teardown_class(cls): cls.db.close() def execute_query(self, query): cursor = self.db.cursor() cursor.execute(query) return cursor def test_simple(self): try: self.execute_query("drop table test_simple") except Exception, e: pass self.execute_query("create table test_simple(x text, y text)") self.execute_query("insert into test_simple(x, y) values('test', 'me')") results = self.execute_query("select x, y from test_simple").fetchall() assert results == [["test", "me"]] def test_count_type(self): try: self.execute_query("drop table test_count_type") except Exception, e: pass self.execute_query("create table test_count_type(x text, y text)") self.execute_query("insert into test_count_type(x, y) values('test', 'me')") results = self.execute_query("select count(*) from test_count_type").fetchall() assert results == [[1]] class Test_j5_ADO(MySqlADOTester): PyADO = j5_PyADO disabled = (j5_PyADO is None) def setup_db(cls): return cls.PyADO.connect(None, {"User ID": "mytest", "Password": "", "Data Source": "mytest"}, "MySQLProv") setup_db = classmethod(setup_db) class Test_jToolkit_ADO(MySqlADOTester): PyADO = jToolkit_PyADO disabled = (jToolkit_PyADO is None) def setup_db(cls): return cls.PyADO.connect(None, user="mytest", password="", database="mytest", provider="MySQLProv") setup_db = classmethod(setup_db) |
From: David F. <dav...@us...> - 2006-06-21 09:55:27
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv8808 Modified Files: test_bugs.py Log Message: added test for altering tables which currently fails through MyOLEDB note that QTADO just stays open on the failing statements... Index: test_bugs.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_bugs.py,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- test_bugs.py 17 Jan 2006 12:00:46 -0000 1.4 +++ test_bugs.py 21 Jun 2006 09:55:24 -0000 1.5 @@ -73,6 +73,25 @@ assert resultlength == 5 assert resultset[:4] == 'test' + def test_alter_table(self): + """tests altering a table and adding new columns""" + tablename = "test_alter_table" + createsql = "create table %s(x char(20), y char(20));" % tablename + self.teardownsql = "drop table %s;" % tablename + self.runsql(createsql) + insertsql = "insert into %s(x, y) values('test', 'me');" % tablename + self.runsql(insertsql) + selectsql = "select * from %s;" % tablename + resultset = self.runsql(selectsql) + assert resultset.count("\n") == 1 + print resultset + altersql = "alter table %s add z char(20)" % tablename + self.runsql(altersql) + insertsql = "insert into %s(x, y, z) values('test', 'me', 'please');" % tablename + resultset2 = self.runsql(selectsql) + print resultset2 + assert resultset2 != resultset + class TestQTADO(BaseTestMySQL): """tests running queries through qtado""" qtadopath = "c:\\Tools\\QTADO40\\" |
From: David M. <ig...@us...> - 2006-06-19 12:48:06
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv13941 Modified Files: Makefile myoledb-debug.wxs myoledb.wxs myprov.rc myver.h Log Message: Upped to version 3.9.6 Index: Makefile =================================================================== RCS file: /cvsroot/myoledb/myoledb3/Makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile 17 Jan 2006 15:10:48 -0000 1.15 +++ Makefile 19 Jun 2006 12:47:54 -0000 1.16 @@ -1,6 +1,6 @@ # Makefile to build myoledb installer -version=3.9.4 +version=3.9.6 distcvsroot=:pserver:ano...@cv...:/cvsroot/myoledb MAKEFLAGS= Index: myprov.rc =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myprov.rc,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- myprov.rc 17 Jan 2006 15:10:48 -0000 1.9 +++ myprov.rc 19 Jun 2006 12:47:54 -0000 1.10 @@ -32,8 +32,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,9,4,0 - PRODUCTVERSION 3,9,4,0 + FILEVERSION 3,9,6,0 + PRODUCTVERSION 3,9,6,0 FILEFLAGSMASK 0x3L #ifdef _DEBUG FILEFLAGS 0x1L @@ -51,14 +51,14 @@ VALUE "Comments", "\0" VALUE "CompanyName", "Standard&Western Software\0" VALUE "FileDescription", "MyOLEDB Provider \0" - VALUE "FileVersion", "03.09.0400\\0" + VALUE "FileVersion", "03.09.0600\\0" VALUE "InternalName", "MYSQLPROV\0" VALUE "LegalCopyright", "Copyright © SWsoft 1998-2000\0" VALUE "LegalTrademarks", "Windows(TM) is a trademark of Microsoft Corporation. Microsoft® is a registered trademark of Microsoft Corporation.\0" VALUE "OriginalFilename", "MYPROV.DLL\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "OLE DB Provider for MySQL\0" - VALUE "ProductVersion", "03.09.0400\\0" + VALUE "ProductVersion", "03.09.0600\\0" VALUE "SpecialBuild", "\0" END END Index: myoledb-debug.wxs =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myoledb-debug.wxs,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- myoledb-debug.wxs 17 Jan 2006 15:10:48 -0000 1.7 +++ myoledb-debug.wxs 19 Jun 2006 12:47:54 -0000 1.8 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> - <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" Name="MyOleDB" Language="1033" Version="3.9.4.0" Manufacturer="St. James Software"> + <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" Name="MyOleDB" Language="1033" Version="3.9.6.0" Manufacturer="St. James Software"> <Package Id="????????-????-????-????-????????????" Description="MyOleDB Installer" Comments="An OleDB driver for MySQL (debug version)" Manufacturer="St. James Software" InstallerVersion="200" Compressed="yes"/> Index: myoledb.wxs =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myoledb.wxs,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- myoledb.wxs 17 Jan 2006 15:10:48 -0000 1.13 +++ myoledb.wxs 19 Jun 2006 12:47:54 -0000 1.14 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> - <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" UpgradeCode="09A01F85-AC55-41E4-80DE-293C35AF7796" Name="MyOleDB" Language="1033" Version="3.9.4.0" Manufacturer="St. James Software"> + <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" UpgradeCode="09A01F85-AC55-41E4-80DE-293C35AF7796" Name="MyOleDB" Language="1033" Version="3.9.6.0" Manufacturer="St. James Software"> <Package Id="????????-????-????-????-????????????" Description="MyOleDB Installer" Comments="An OleDB driver for MySQL" Manufacturer="St. James Software" InstallerVersion="200" Compressed="yes"/> Index: myver.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myver.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- myver.h 17 Jan 2006 15:10:48 -0000 1.8 +++ myver.h 19 Jun 2006 12:47:54 -0000 1.9 @@ -19,10 +19,10 @@ #ifndef _AXVER_H_ #define _AXVER_H_ -#define VER_FILEVERSION 03,09,0400 -#define VER_FILEVERSION_STR "03.09.0400\\0" -#define VER_PRODUCTVERSION 03,09,0400 -#define VER_PRODUCTVERSION_STR "03.09.0400\\0" +#define VER_FILEVERSION 03,09,0600 +#define VER_FILEVERSION_STR "03.09.0600\\0" +#define VER_PRODUCTVERSION 03,09,0600 +#define VER_PRODUCTVERSION_STR "03.09.0600\\0" #define VER_LFILEVERSION_STR L"03.90" #define VER_FILEFLAGSMASK (VS_FF_DEBUG | VS_FF_PRERELEASE) |
From: David M. <ig...@us...> - 2006-02-01 07:36:28
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32388 Modified Files: mysql.cpp mysqlmeta.cpp Log Message: When deleting members, make sure they are set to NULL, so if shutdown happens twice there's no crash Index: mysqlmeta.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/mysqlmeta.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- mysqlmeta.cpp 24 Nov 2005 13:54:01 -0000 1.7 +++ mysqlmeta.cpp 1 Feb 2006 07:36:17 -0000 1.8 @@ -56,6 +56,7 @@ } free( m_pFiles ); + m_pFiles = NULL; } if( m_pRelations != NULL ) @@ -68,6 +69,7 @@ } free( m_pRelations ); + m_pRelations = NULL; } free( m_pFields ); Index: mysql.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/mysql.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- mysql.cpp 13 Jan 2006 09:12:15 -0000 1.32 +++ mysql.cpp 1 Feb 2006 07:36:17 -0000 1.33 @@ -1913,7 +1913,7 @@ // 6d) Execute the statement int numRowsAffected; - if (mysql_stmt_execute(m_hstmt)) + if (mysql_stmt_execute(m_hstmt)) { // TODO: work out what the right error to give here is mysql_stmt_close(m_hstmt); |
From: David M. <ig...@us...> - 2006-02-01 07:24:37
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28887 Modified Files: command.cpp command.h Log Message: If the statement fails, make sure ppRowset is set to NULL, so we won't think we have a valid rowset Keep a record of whether a statement succeeds, so we can return E_FAIL if it failed when asked for the rows Index: command.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/command.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- command.h 20 Sep 2005 14:44:33 -0000 1.1.1.1 +++ command.h 1 Feb 2006 07:24:29 -0000 1.2 @@ -117,6 +117,9 @@ PIMPICOLUMNSINFO m_pIColumnsInfo; //@member contained ISupportErrorInfo PIMPISUPPORTERRORINFO m_pISupportErrorInfo; + + //@member record of whetehr the statement failed (and the Rowset is NULL for that reason) or succeeded + bool m_bStatementFailed; public: //@access public //@cmember Constructor Index: command.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/command.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- command.cpp 24 Jan 2006 12:01:55 -0000 1.5 +++ command.cpp 1 Feb 2006 07:24:28 -0000 1.6 @@ -46,6 +46,7 @@ m_pUnkOuter = pUnkOuter ? pUnkOuter : this; m_cCols = -1; m_bBookmark = true; + m_bStatementFailed = true; // Increment global object count. OBJECT_CONSTRUCTED(); @@ -546,16 +547,10 @@ // NEVER EXECUTE THE STATEMENT!! This causes side-effects if (pRowset == NULL) { - /*HRESULT hr; - hr = ((CImpICommand*)m_pICommand)->Execute(NULL, IID_IUnknown, NULL, NULL, (IUnknown**)&pRowset); - if (FAILED(hr)) - return E_FAIL; //hr - - if (pRowset == NULL) - {*/ - m_cCols = 0; - return S_OK; - /*}*/ + if (m_bStatementFailed) + return E_FAIL; + m_cCols = 0; + return S_OK; } else pRowset->AddRef(); @@ -1024,12 +1019,14 @@ *pcRowsAffected = dwAffectedRows; delete pData; + m_pObj->m_bStatementFailed = false; return S_OK; } if (riid == GUID_NULL) { delete pData; + m_pObj->m_bStatementFailed = false; return S_OK; } @@ -1110,12 +1107,14 @@ if (FAILED( hr )) { delete pRowset; + *ppRowset = NULL; return hr; } hr = m_pObj->FillColumnInfo(pRowset); if (FAILED(hr)) { + *ppRowset = NULL; delete pRowset; return hr; } @@ -1143,6 +1142,7 @@ hr = pRowset->m_pExtBufferAccessor->InsertIntoExtBuffer(&pAccessor, ulTemp); if (FAILED(hr)) { + *ppRowset = NULL; delete pRowset; if (pAccessor != NULL) @@ -1175,7 +1175,8 @@ m_pObj->SetState(STATE_EXECUTE); - return hr; + m_pObj->m_bStatementFailed = false; + return hr; INTERFACE_METHOD_END(); } |
From: David M. <ig...@us...> - 2006-01-27 07:54:49
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17763 Modified Files: rowset.cpp irowset.cpp rowchng.cpp Log Message: If there are no rows returned, don't allocate a rowset ref object Fix other references, so nobody tries to use the NULL object Index: irowset.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/irowset.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- irowset.cpp 18 Jan 2006 09:14:37 -0000 1.3 +++ irowset.cpp 27 Jan 2006 07:54:41 -0000 1.4 @@ -290,6 +290,10 @@ if (cRows == 0) return S_OK; + // If there are no rows, return DB_S_ENDOFROWSET + if (m_pObj->m_SlotRef == NULL) + return DB_S_ENDOFROWSET; + //Send notifications if (bAllNotifications) { @@ -429,7 +433,7 @@ { bRowFound = FALSE; - // finding the same rows in the buffer + // finding the same rows in the buffer for ( krow = 0; krow < m_pObj->m_pData->m_dwTotalRows; krow++ ) { if (m_pObj->m_SlotRef[krow].Status == 0) @@ -462,7 +466,7 @@ iSlot = m_pObj->GetFreeSlot(); assert (iSlot != 0xFFFFFFFF); - prowbuff = m_pObj->GetRowBuff(m_pObj->m_SlotRef[iSlot].hRow); + prowbuff = m_pObj->GetRowBuff(m_pObj->m_SlotRef[iSlot].hRow); hr = m_pObj->m_pData->GetRow(m_pObj->m_rgdwDataOffsets, (BYTE*)prowbuff); if (hr != S_OK) @@ -614,7 +618,7 @@ if ( rghRows[ihRow] == m_pObj->m_SlotRef[ i ].hRow ) break; - if (i == m_pObj->m_pData->m_dwTotalRows) + if (i >= m_pObj->m_pData->m_dwTotalRows) goto InvalidRow; Index: rowchng.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowchng.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- rowchng.cpp 20 Sep 2005 14:45:00 -0000 1.1.1.1 +++ rowchng.cpp 27 Jan 2006 07:54:41 -0000 1.2 @@ -406,7 +406,7 @@ m_pObj->m_cRows++; m_pObj->m_ulRowRefCount++; - PROWBUFF pRow = m_pObj->GetRowBuff(m_pObj->m_SlotRef[iSlot].hRow); + PROWBUFF pRow = m_pObj->GetRowBuff(m_pObj->m_SlotRef[iSlot].hRow); //Fill out row with new data hr = m_pObj->ApplyAccessor(hAccessor, (BYTE*)pRow, pData); Index: rowset.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowset.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- rowset.cpp 19 Jan 2006 09:05:31 -0000 1.4 +++ rowset.cpp 27 Jan 2006 07:54:41 -0000 1.5 @@ -193,9 +193,12 @@ m_pData = pData; // allocate m_SlotRef object - m_SlotRef = new SLOTREF[pData->m_dwTotalRows]; - if (m_SlotRef == NULL) - return FALSE; + if (pData->m_dwTotalRows > 0) + { + m_SlotRef = new SLOTREF[pData->m_dwTotalRows]; + if (m_SlotRef == NULL) + return FALSE; + } // allocate utility object that manages our properties if( m_pSession ) @@ -447,7 +450,8 @@ m_SlotRef[ i ].hRow = m_irowMin + i + 1; m_SlotRef[ i ].NextSlot = i + 1; } - m_SlotRef[m_pData->m_dwTotalRows - 1].NextSlot = 0xFFFFFFFF; + if (m_SlotRef != NULL) + m_SlotRef[m_pData->m_dwTotalRows - 1].NextSlot = 0xFFFFFFFF; m_FirstFreeSlot = 0; return S_OK; @@ -462,6 +466,8 @@ BOOL CRowset::IsSlotLimitReached() { TRACE( "CRowset::IsSlotLimitReached" ); + if (m_SlotRef == NULL) + return TRUE; return (m_FirstFreeSlot == 0xFFFFFFFF)? TRUE : FALSE; } @@ -476,7 +482,10 @@ TRACE( "CRowset::GetFreeSlot" ); ULONG iSlot; - iSlot = m_FirstFreeSlot; + if (m_SlotRef == NULL) + return 0xFFFFFFFF; + + iSlot = m_FirstFreeSlot; if (iSlot != 0xFFFFFFFF) { m_FirstFreeSlot = m_SlotRef[iSlot].NextSlot; @@ -500,7 +509,10 @@ // assert(m_SlotRef[ iSlot ].Status); // assert(m_ulRowRefCount); - m_SlotRef[ iSlot ].NextSlot = m_FirstFreeSlot; + if (m_SlotRef == NULL) + return; + + m_SlotRef[ iSlot ].NextSlot = m_FirstFreeSlot; m_FirstFreeSlot = iSlot; // status: slot is free m_SlotRef[iSlot].Status = 0; |
From: David M. <ig...@us...> - 2006-01-24 12:02:14
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9084 Modified Files: command.cpp Log Message: Stop us reexecuting statements - rather just give no information on columns which aren't there Index: command.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/command.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- command.cpp 9 Nov 2005 15:48:31 -0000 1.4 +++ command.cpp 24 Jan 2006 12:01:55 -0000 1.5 @@ -543,18 +543,19 @@ return S_OK; //Check if we need to execute query first to fill column info + // NEVER EXECUTE THE STATEMENT!! This causes side-effects if (pRowset == NULL) { - HRESULT hr; + /*HRESULT hr; hr = ((CImpICommand*)m_pICommand)->Execute(NULL, IID_IUnknown, NULL, NULL, (IUnknown**)&pRowset); if (FAILED(hr)) return E_FAIL; //hr if (pRowset == NULL) - { + {*/ m_cCols = 0; return S_OK; - } + /*}*/ } else pRowset->AddRef(); @@ -1112,7 +1113,7 @@ return hr; } - hr = m_pObj->FillColumnInfo(pRowset); + hr = m_pObj->FillColumnInfo(pRowset); if (FAILED(hr)) { delete pRowset; |
From: David M. <ig...@us...> - 2006-01-19 09:05:41
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22546 Modified Files: hashtbl.cpp rowset.cpp Log Message: Calculate the extra page of memory in the correct place, so we don't run out of memory for small rows Index: hashtbl.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/hashtbl.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- hashtbl.cpp 17 Jan 2006 13:25:10 -0000 1.2 +++ hashtbl.cpp 19 Jan 2006 09:05:30 -0000 1.3 @@ -270,7 +270,8 @@ cbPage = sysinfo.dwPageSize; } - cbReserve = ((cslotMax *cbSlot + sizeof( LSTSLOT )) / cbPage + 1) *cbPage; + // We have to reserve enough for our cbCommitFirst (a page) plus the total we will commit + cbReserve = ((cslotMax *cbSlot + sizeof( LSTSLOT )) / cbPage + 2) *cbPage; pbAlloc = (BYTE *) VirtualAlloc( NULL, cbReserve, MEM_RESERVE, PAGE_READWRITE ); if (pbAlloc == NULL) Index: rowset.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowset.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- rowset.cpp 18 Jan 2006 10:18:49 -0000 1.3 +++ rowset.cpp 19 Jan 2006 09:05:31 -0000 1.4 @@ -425,8 +425,7 @@ // List of free slots. // This manages the allocation of sets of contiguous rows. - // We only need a maximum of TotalRows+1 (which is what we allocate) +1 for the extra page allocated - if (FAILED( InitializeSlotList( m_pData->m_dwTotalRows+2, + if (FAILED( InitializeSlotList( m_pData->m_dwTotalRows+1, m_cbRowSize, g_dwPageSize, m_prowbitsIBuffer, &m_pIBuffer, &m_rgbRowData ))) return E_FAIL; |
From: David M. <ig...@us...> - 2006-01-18 10:21:19
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5666 Modified Files: myprov.h Log Message: Removed two defuct constants: ACTIVE_ROWS_LIMIT (replaced by the number of actual rows we have to deal with) MAX_TOTAL_ROWBUFF_SIZE (replaced by failing when a machine actually runs out of RAM, not on an arbitrary boundary) Index: myprov.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myprov.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- myprov.h 17 Jan 2006 11:50:20 -0000 1.4 +++ myprov.h 18 Jan 2006 10:20:51 -0000 1.5 @@ -48,10 +48,8 @@ #endif #define MAX_HEAP_SIZE 128000 -#define MAX_TOTAL_ROWBUFF_SIZE (80*1024*1024) // Max for all row buffers. #define MAX_IBUFFER_SIZE 2000000 #define MAX_BIND_LEN (MAX_IBUFFER_SIZE/10) -#define ACTIVE_ROWS_LIMIT 200 #define STAT_ENDOFCURSOR 0x00000100 // for forward-only means fully materialized |
From: David M. <ig...@us...> - 2006-01-18 10:19:06
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4885 Modified Files: rowset.cpp Log Message: Remove last use of limiting MAX_TOTAL_ROWBUFF_SIZE constant Index: rowset.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowset.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- rowset.cpp 18 Jan 2006 09:13:27 -0000 1.2 +++ rowset.cpp 18 Jan 2006 10:18:49 -0000 1.3 @@ -425,7 +425,8 @@ // List of free slots. // This manages the allocation of sets of contiguous rows. - if (FAILED( InitializeSlotList( MAX_TOTAL_ROWBUFF_SIZE / m_cbRowSize, + // We only need a maximum of TotalRows+1 (which is what we allocate) +1 for the extra page allocated + if (FAILED( InitializeSlotList( m_pData->m_dwTotalRows+2, m_cbRowSize, g_dwPageSize, m_prowbitsIBuffer, &m_pIBuffer, &m_rgbRowData ))) return E_FAIL; |
From: David M. <ig...@us...> - 2006-01-18 09:16:21
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16064 Modified Files: utilprop.cpp Log Message: Change DBPROP_MAXOPENROWS to 0, which denotes there isn't really a limit, as we don't hard code a limit any more Index: utilprop.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/utilprop.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- utilprop.cpp 20 Sep 2005 14:44:39 -0000 1.1.1.1 +++ utilprop.cpp 18 Jan 2006 09:16:09 -0000 1.2 @@ -84,7 +84,7 @@ /* 35 */ {DBPROP_CANSCROLLBACKWARDS,FLAGS_ROWSETRW, VT_BOOL, TRUE, 0, NULL, L"Scroll Backwards"}, /* 36 */ {DBPROP_BOOKMARKSKIPPED, FLAGS_ROWSETRO, VT_BOOL, FALSE, 0, NULL, L"Skip Deleted Bookmarks"}, /* 37 */ {DBPROP_STRONGIDENTITY, FLAGS_ROWSETRO, VT_BOOL, TRUE, 0, NULL, L"Strong Row Identity"}, -/* 38 */ {DBPROP_MAXOPENROWS, FLAGS_ROWSETRO, VT_I4, FALSE, ACTIVE_ROWS_LIMIT, NULL, L"Maximum Open Rows"}, +/* 38 */ {DBPROP_MAXOPENROWS, FLAGS_ROWSETRO, VT_I4, FALSE, 0, NULL, L"Maximum Open Rows"}, /* 39 */ {DBPROP_NOTIFICATIONGRANULARITY,FLAGS_ROWSETRO,VT_I4,FALSE, DBPROPVAL_NT_SINGLEROW, NULL, L"Notification Granularity"}, /* 40 */ {DBPROP_NOTIFICATIONPHASES, FLAGS_ROWSETRO, VT_I4, FALSE, DBPROPVAL_NP_OKTODO|DBPROPVAL_NP_ABOUTTODO|DBPROPVAL_NP_FAILEDTODO|DBPROPVAL_NP_DIDEVENT, NULL, L"Notification Phases"}, @@ -1706,4 +1706,4 @@ InternalSqlSupportVersions CUtilProp::InternalSqlSupport() { return MySqlMode() ? ISS_MYSQL : ISS_WRONG; -} \ No newline at end of file +} |
From: David M. <ig...@us...> - 2006-01-18 09:14:48
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15556 Modified Files: irowset.cpp rowiden.cpp rowlocate.cpp Log Message: Change from using the ACTIVE_ROWS_LIMIT constant to using the m_dwTotalRows member of the query Index: rowiden.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowiden.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- rowiden.cpp 20 Sep 2005 14:44:50 -0000 1.1.1.1 +++ rowiden.cpp 18 Jan 2006 09:14:37 -0000 1.2 @@ -39,7 +39,7 @@ INTERFACE_METHOD_START( "IRowsetIdentity::IsSameRow" ); // if row handle bad ? - if (hThisRow > ACTIVE_ROWS_LIMIT || hThatRow >ACTIVE_ROWS_LIMIT) + if (hThisRow > m_pObj->m_pData->m_dwTotalRows || hThatRow > m_pObj->m_pData->m_dwTotalRows) return DB_E_BADROWHANDLE; // IsSlotSet returns S_OK if row is marked. Index: irowset.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/irowset.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- irowset.cpp 16 Jan 2006 11:35:54 -0000 1.2 +++ irowset.cpp 18 Jan 2006 09:14:37 -0000 1.3 @@ -335,8 +335,8 @@ //We need to workaround case when consumer asks for huge amount of rows //otherwise memory allocation may fail - if (cBRows > ACTIVE_ROWS_LIMIT) - cBRows = ACTIVE_ROWS_LIMIT; + if (cBRows > m_pObj->m_pData->m_dwTotalRows) + cBRows = m_pObj->m_pData->m_dwTotalRows; //Create temporary HROW array if (!bSingleGranularity) @@ -430,7 +430,7 @@ bRowFound = FALSE; // finding the same rows in the buffer - for ( krow = 0; krow < ACTIVE_ROWS_LIMIT; krow++ ) + for ( krow = 0; krow < m_pObj->m_pData->m_dwTotalRows; krow++ ) { if (m_pObj->m_SlotRef[krow].Status == 0) continue; @@ -513,7 +513,7 @@ // let us decide what the code to return: if (!blnIfFreeSlotsAvailable && lUnRoomedRows > 0) { - if (abs(cRows) > ACTIVE_ROWS_LIMIT) + if (abs(cRows) > m_pObj->m_pData->m_dwTotalRows) hr = DB_S_ROWLIMITEXCEEDED; else hr = DB_S_STOPLIMITREACHED; @@ -610,11 +610,11 @@ // begin release handles for (ihRow = 0; ihRow < cRows; ihRow++) { - for ( i = 0; i < ACTIVE_ROWS_LIMIT; i++ ) + for ( i = 0; i < m_pObj->m_pData->m_dwTotalRows; i++ ) if ( rghRows[ihRow] == m_pObj->m_SlotRef[ i ].hRow ) break; - if (i == ACTIVE_ROWS_LIMIT) + if (i == m_pObj->m_pData->m_dwTotalRows) goto InvalidRow; Index: rowlocate.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowlocate.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- rowlocate.cpp 20 Sep 2005 14:44:36 -0000 1.1.1.1 +++ rowlocate.cpp 18 Jan 2006 09:14:37 -0000 1.2 @@ -284,7 +284,7 @@ if (bRowsetIdentity) { bRowFound = FALSE; - for (krow = 1; krow < ACTIVE_ROWS_LIMIT; krow++) + for (krow = 1; krow < m_pObj->m_pData->m_dwTotalRows; krow++) { if (m_pObj->m_SlotRef[ krow ].Status == 0) continue; |
From: David M. <ig...@us...> - 2006-01-18 09:13:36
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15166 Modified Files: rowset.cpp rowset.h Log Message: Make m_SlotRef a dynamic variable, dependent for its size on the total number of possible rows Change from using the ACTIVE_ROWS_LIMIT constant to using the m_dwTotalRows member of the query Index: rowset.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowset.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- rowset.h 20 Sep 2005 14:44:48 -0000 1.1.1.1 +++ rowset.h 18 Jan 2006 09:13:27 -0000 1.2 @@ -244,7 +244,7 @@ //@cmember ULONG m_FirstFreeSlot; //@cmember - SLOTREF m_SlotRef[ACTIVE_ROWS_LIMIT]; + SLOTREF* m_SlotRef; //@cmember BOOL m_LastDirection; Index: rowset.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/rowset.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- rowset.cpp 20 Sep 2005 14:44:46 -0000 1.1.1.1 +++ rowset.cpp 18 Jan 2006 09:13:27 -0000 1.2 @@ -143,6 +143,13 @@ if (m_pCreator != NULL) m_pCreator->Release(); + // Delete m_SlotRef + if (m_SlotRef) + { + delete [] m_SlotRef; + m_SlotRef = NULL; + } + // Decrement global object count. OBJECT_DESTRUCTED(); @@ -185,6 +192,11 @@ // Establish pointer to CData m_pData = pData; + // allocate m_SlotRef object + m_SlotRef = new SLOTREF[pData->m_dwTotalRows]; + if (m_SlotRef == NULL) + return FALSE; + // allocate utility object that manages our properties if( m_pSession ) m_pUtilProp = new CUtilProp( m_pSession->m_pCDataSource, m_pSession->m_pUtilProp ); @@ -426,16 +438,16 @@ return E_FAIL; // Here we are allocating buffer for our rowset. - // It will will be static and its size will be ACTIVE_ROWS_LIMIT - if (FAILED( GetNextSlots(m_pIBuffer, ACTIVE_ROWS_LIMIT + 1, &m_irowMin) )) + // It will will be static and its size will be the number of rows in the query + if (FAILED( GetNextSlots(m_pIBuffer, m_pData->m_dwTotalRows + 1, &m_irowMin) )) return E_FAIL; - for ( ULONG i = 0; i < ACTIVE_ROWS_LIMIT; i++ ) + for ( ULONG i = 0; i < m_pData->m_dwTotalRows; i++ ) { m_SlotRef[ i ].hRow = m_irowMin + i + 1; m_SlotRef[ i ].NextSlot = i + 1; } - m_SlotRef[ACTIVE_ROWS_LIMIT - 1].NextSlot = 0xFFFFFFFF; + m_SlotRef[m_pData->m_dwTotalRows - 1].NextSlot = 0xFFFFFFFF; m_FirstFreeSlot = 0; return S_OK; @@ -1081,7 +1093,7 @@ ULONG CRowset::GetSlotNumber( HROW hRow) { TRACE( "CRowset::GetSlotNumber" ); - for ( ULONG i = 0; i < ACTIVE_ROWS_LIMIT; i++ ) + for ( ULONG i = 0; i < m_pData->m_dwTotalRows; i++ ) if ( hRow == m_SlotRef[ i ].hRow ) return i; return INVALID_SLOT_NUMBER; |
From: David M. <ig...@us...> - 2006-01-18 09:10:57
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13878 Modified Files: mysql.h Data.h Log Message: Move the TotalRows member from CMySQL to CData, where outside classes can access the value Index: Data.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/Data.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Data.h 20 Sep 2005 14:44:31 -0000 1.1.1.1 +++ Data.h 18 Jan 2006 09:10:49 -0000 1.2 @@ -72,7 +72,10 @@ virtual HRESULT DeleteRow(ULONG* pulBookmark) = 0; //@cmember ULONGs in a bookmark virtual ULONG bookmarks(void) { return 1; } + + // This is compulsory - keeps the maximum number of rows which could be asked + DWORD m_dwTotalRows; }; -#endif \ No newline at end of file +#endif Index: mysql.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/mysql.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- mysql.h 9 Nov 2005 15:48:31 -0000 1.5 +++ mysql.h 18 Jan 2006 09:10:49 -0000 1.6 @@ -134,7 +134,6 @@ DWORD m_dwCurrentRow; DWORD m_dwRowSize; - DWORD m_dwTotalRows; DWORD m_dwCols; DWORD m_dwRowsInserted; MYSQLCOLUMNINFO* m_pColumnInfo; |
From: David M. <ig...@us...> - 2006-01-17 15:10:56
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14011 Modified Files: Makefile myoledb-debug.wxs myoledb.wxs myprov.rc myver.h Log Message: Regress to version 3.9.4, as we haven't actually fixed BLOBs yet Index: Makefile =================================================================== RCS file: /cvsroot/myoledb/myoledb3/Makefile,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Makefile 17 Jan 2006 13:27:22 -0000 1.14 +++ Makefile 17 Jan 2006 15:10:48 -0000 1.15 @@ -1,6 +1,6 @@ # Makefile to build myoledb installer -version=3.9.5 +version=3.9.4 distcvsroot=:pserver:ano...@cv...:/cvsroot/myoledb MAKEFLAGS= Index: myprov.rc =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myprov.rc,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- myprov.rc 17 Jan 2006 13:27:22 -0000 1.8 +++ myprov.rc 17 Jan 2006 15:10:48 -0000 1.9 @@ -32,8 +32,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,9,5,0 - PRODUCTVERSION 3,9,5,0 + FILEVERSION 3,9,4,0 + PRODUCTVERSION 3,9,4,0 FILEFLAGSMASK 0x3L #ifdef _DEBUG FILEFLAGS 0x1L @@ -51,14 +51,14 @@ VALUE "Comments", "\0" VALUE "CompanyName", "Standard&Western Software\0" VALUE "FileDescription", "MyOLEDB Provider \0" - VALUE "FileVersion", "03.09.0500\\0" + VALUE "FileVersion", "03.09.0400\\0" VALUE "InternalName", "MYSQLPROV\0" VALUE "LegalCopyright", "Copyright © SWsoft 1998-2000\0" VALUE "LegalTrademarks", "Windows(TM) is a trademark of Microsoft Corporation. Microsoft® is a registered trademark of Microsoft Corporation.\0" VALUE "OriginalFilename", "MYPROV.DLL\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "OLE DB Provider for MySQL\0" - VALUE "ProductVersion", "03.09.0500\\0" + VALUE "ProductVersion", "03.09.0400\\0" VALUE "SpecialBuild", "\0" END END Index: myoledb-debug.wxs =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myoledb-debug.wxs,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- myoledb-debug.wxs 17 Jan 2006 13:27:22 -0000 1.6 +++ myoledb-debug.wxs 17 Jan 2006 15:10:48 -0000 1.7 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> - <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" Name="MyOleDB" Language="1033" Version="3.9.5.0" Manufacturer="St. James Software"> + <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" Name="MyOleDB" Language="1033" Version="3.9.4.0" Manufacturer="St. James Software"> <Package Id="????????-????-????-????-????????????" Description="MyOleDB Installer" Comments="An OleDB driver for MySQL (debug version)" Manufacturer="St. James Software" InstallerVersion="200" Compressed="yes"/> Index: myoledb.wxs =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myoledb.wxs,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- myoledb.wxs 17 Jan 2006 13:27:22 -0000 1.12 +++ myoledb.wxs 17 Jan 2006 15:10:48 -0000 1.13 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> - <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" UpgradeCode="09A01F85-AC55-41E4-80DE-293C35AF7796" Name="MyOleDB" Language="1033" Version="3.9.5.0" Manufacturer="St. James Software"> + <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" UpgradeCode="09A01F85-AC55-41E4-80DE-293C35AF7796" Name="MyOleDB" Language="1033" Version="3.9.4.0" Manufacturer="St. James Software"> <Package Id="????????-????-????-????-????????????" Description="MyOleDB Installer" Comments="An OleDB driver for MySQL" Manufacturer="St. James Software" InstallerVersion="200" Compressed="yes"/> Index: myver.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myver.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- myver.h 17 Jan 2006 13:27:22 -0000 1.7 +++ myver.h 17 Jan 2006 15:10:48 -0000 1.8 @@ -19,10 +19,10 @@ #ifndef _AXVER_H_ #define _AXVER_H_ -#define VER_FILEVERSION 03,09,0500 -#define VER_FILEVERSION_STR "03.09.0500\\0" -#define VER_PRODUCTVERSION 03,09,0500 -#define VER_PRODUCTVERSION_STR "03.09.0500\\0" +#define VER_FILEVERSION 03,09,0400 +#define VER_FILEVERSION_STR "03.09.0400\\0" +#define VER_PRODUCTVERSION 03,09,0400 +#define VER_PRODUCTVERSION_STR "03.09.0400\\0" #define VER_LFILEVERSION_STR L"03.90" #define VER_FILEFLAGSMASK (VS_FF_DEBUG | VS_FF_PRERELEASE) |
From: David M. <ig...@us...> - 2006-01-17 13:29:29
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21620 Modified Files: Changelog.txt Log Message: Added 3.9.5 change Index: Changelog.txt =================================================================== RCS file: /cvsroot/myoledb/myoledb3/Changelog.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Changelog.txt 16 Jan 2006 14:43:12 -0000 1.2 +++ Changelog.txt 17 Jan 2006 13:29:20 -0000 1.3 @@ -1,5 +1,9 @@ ** For a more complete changelog, see ChangeLog in the source release +MyOleDB 3.9.5 +============= +* Fixed support for BLOBs + MyOleDB 3.9.4 ============= * Added handling for when the database connection goes down while using the |
From: David M. <ig...@us...> - 2006-01-17 13:27:41
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21004 Modified Files: Makefile myoledb-debug.wxs myoledb.wxs myprov.rc myver.h Log Message: Version 3.9.5, with BLOB support Index: Makefile =================================================================== RCS file: /cvsroot/myoledb/myoledb3/Makefile,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Makefile 16 Jan 2006 12:36:24 -0000 1.13 +++ Makefile 17 Jan 2006 13:27:22 -0000 1.14 @@ -1,6 +1,6 @@ # Makefile to build myoledb installer -version=3.9.4 +version=3.9.5 distcvsroot=:pserver:ano...@cv...:/cvsroot/myoledb MAKEFLAGS= Index: myprov.rc =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myprov.rc,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- myprov.rc 16 Jan 2006 12:36:24 -0000 1.7 +++ myprov.rc 17 Jan 2006 13:27:22 -0000 1.8 @@ -32,8 +32,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,9,4,0 - PRODUCTVERSION 3,9,4,0 + FILEVERSION 3,9,5,0 + PRODUCTVERSION 3,9,5,0 FILEFLAGSMASK 0x3L #ifdef _DEBUG FILEFLAGS 0x1L @@ -51,14 +51,14 @@ VALUE "Comments", "\0" VALUE "CompanyName", "Standard&Western Software\0" VALUE "FileDescription", "MyOLEDB Provider \0" - VALUE "FileVersion", "03.09.0400\\0" + VALUE "FileVersion", "03.09.0500\\0" VALUE "InternalName", "MYSQLPROV\0" VALUE "LegalCopyright", "Copyright © SWsoft 1998-2000\0" VALUE "LegalTrademarks", "Windows(TM) is a trademark of Microsoft Corporation. Microsoft® is a registered trademark of Microsoft Corporation.\0" VALUE "OriginalFilename", "MYPROV.DLL\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "OLE DB Provider for MySQL\0" - VALUE "ProductVersion", "03.09.0400\\0" + VALUE "ProductVersion", "03.09.0500\\0" VALUE "SpecialBuild", "\0" END END Index: myoledb-debug.wxs =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myoledb-debug.wxs,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- myoledb-debug.wxs 16 Jan 2006 12:36:24 -0000 1.5 +++ myoledb-debug.wxs 17 Jan 2006 13:27:22 -0000 1.6 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> - <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" Name="MyOleDB" Language="1033" Version="3.9.4.0" Manufacturer="St. James Software"> + <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" Name="MyOleDB" Language="1033" Version="3.9.5.0" Manufacturer="St. James Software"> <Package Id="????????-????-????-????-????????????" Description="MyOleDB Installer" Comments="An OleDB driver for MySQL (debug version)" Manufacturer="St. James Software" InstallerVersion="200" Compressed="yes"/> Index: myoledb.wxs =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myoledb.wxs,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- myoledb.wxs 16 Jan 2006 12:36:24 -0000 1.11 +++ myoledb.wxs 17 Jan 2006 13:27:22 -0000 1.12 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> - <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" UpgradeCode="09A01F85-AC55-41E4-80DE-293C35AF7796" Name="MyOleDB" Language="1033" Version="3.9.4.0" Manufacturer="St. James Software"> + <Product Id="E170C29B-5F08-4759-8538-2B685F7CFC39" UpgradeCode="09A01F85-AC55-41E4-80DE-293C35AF7796" Name="MyOleDB" Language="1033" Version="3.9.5.0" Manufacturer="St. James Software"> <Package Id="????????-????-????-????-????????????" Description="MyOleDB Installer" Comments="An OleDB driver for MySQL" Manufacturer="St. James Software" InstallerVersion="200" Compressed="yes"/> Index: myver.h =================================================================== RCS file: /cvsroot/myoledb/myoledb3/myver.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- myver.h 16 Jan 2006 12:36:24 -0000 1.6 +++ myver.h 17 Jan 2006 13:27:22 -0000 1.7 @@ -19,10 +19,10 @@ #ifndef _AXVER_H_ #define _AXVER_H_ -#define VER_FILEVERSION 03,09,0400 -#define VER_FILEVERSION_STR "03.09.0400\\0" -#define VER_PRODUCTVERSION 03,09,0400 -#define VER_PRODUCTVERSION_STR "03.09.0400\\0" +#define VER_FILEVERSION 03,09,0500 +#define VER_FILEVERSION_STR "03.09.0500\\0" +#define VER_PRODUCTVERSION 03,09,0500 +#define VER_PRODUCTVERSION_STR "03.09.0500\\0" #define VER_LFILEVERSION_STR L"03.90" #define VER_FILEFLAGSMASK (VS_FF_DEBUG | VS_FF_PRERELEASE) |
From: David M. <ig...@us...> - 2006-01-17 13:25:21
|
Update of /cvsroot/myoledb/myoledb3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20349 Modified Files: hashtbl.cpp Log Message: Add a debug error message for when we run out of our completely hard-limited memory, so if we ever hit the same bug again, it will be a lot easier to find Index: hashtbl.cpp =================================================================== RCS file: /cvsroot/myoledb/myoledb3/hashtbl.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- hashtbl.cpp 20 Sep 2005 14:44:44 -0000 1.1.1.1 +++ hashtbl.cpp 17 Jan 2006 13:25:10 -0000 1.2 @@ -78,7 +78,11 @@ cbCommit, MEM_COMMIT, PAGE_READWRITE ) == NULL) + { + TRACE4("Failure attempting to allocate memory. cbSlot=%d, cbCommit=%d, cbCommitCurrent=%d, cbCommitMax=%d", + plstslot->cbSlot, cbCommit, plstslot->cbCommitCurrent, plstslot->cbCommitMax); return E_OUTOFMEMORY; + } // Start position of the array islot = (ULONG) ((plstslot->cbCommitCurrent + plstslot->cbExtra) / plstslot->cbSlot); |
From: David M. <ig...@us...> - 2006-01-17 12:01:00
|
Update of /cvsroot/myoledb/myoledb3/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27685/test Modified Files: test_bugs.py Log Message: Adjust tests so it also checks we're getting something legitimate from our select Index: test_bugs.py =================================================================== RCS file: /cvsroot/myoledb/myoledb3/test/test_bugs.py,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- test_bugs.py 12 Jan 2006 12:53:22 -0000 1.3 +++ test_bugs.py 17 Jan 2006 12:00:46 -0000 1.4 @@ -56,6 +56,7 @@ assert len(resultsets) == 2 resultlengths = [resultset.count("\n") for resultset in resultsets] assert resultlengths[0] == resultlengths[1] == 5 + assert resultset[:4] == 'test' def test_blobs(self): """Blobs are handled correctly""" @@ -70,6 +71,7 @@ assert resultset != None resultlength = resultset.count("\n") assert resultlength == 5 + assert resultset[:4] == 'test' class TestQTADO(BaseTestMySQL): """tests running queries through qtado""" |