/* * $Id: simple.prg 10691 2009-03-25 13:22:38Z vszakats $ */ #include "common.ch"
Function main( cHost, cDatabase, cUser, cPass ) Local oServer, oQuery, oRow, i, x, aTables, aStruct Local cQuery oServer := TPQServer():New(cHost, cDatabase, cUser, cPass) if oServer:NetErr() ? oServer:Error() quit endif oServer:SetVerbosity(2) oServer:traceon('lixo.log') ? 'Tables...' For x := 1 to 1 aTables := oServer:ListTables() For i := 1 to Len(aTables) ? aTables[i] next Next if oServer:TableExists('TEST') ? oQuery := oServer:Execute('DROP TABLE Test') oQuery:Destroy() endif ? 'Creating test table...' cQuery := 'CREATE TABLE test(' cQuery += ' Code integer not null primary key, ' cQuery += ' dept Integer, ' cQuery += ' Name Varchar(40), ' cQuery += ' Sales boolean, ' cQuery += ' Tax Float4, ' cQuery += ' Salary Double Precision, ' cQuery += ' Budget Numeric(12,2), ' cQuery += ' Discount Numeric (5,2), ' cQuery += ' Creation Date, ' cQuery += ' Description text ) ' oQuery := oServer:Query(cQuery) if oQuery:neterr() ? oQuery:Error() endif oQuery:Destroy() ? 'Structure of test table' aStruct := oServer:TableStruct('test') For i := 1 to Len(aStruct) ? For x := 1 to Len(aStruct[i]) ?? aStruct[i,x], " " Next next ? 'Inserting, declared transaction control ' oServer:StartTransaction() For i := 1 to 10 cQuery := "INSERT INTO ventas(code, dept, name, sales, tax, salary, budget, Discount, Creation, Description) " cQuery += "VALUES( " + str(i) + ", 2, 'TEST', 'y', 5, 3000, 1500.2, 7.5, '12-22-2003', 'Short Description about what ? ')" oQuery := oServer:Query(cQuery) if oQuery:neterr() ? oQuery:error() endif oQuery:destroy() Next oServer:Commit() oQuery := oServer:Query('SELECT code, name, description, sales FROM test') aStruct := oQuery:Struct() For i := 1 to Len(aStruct) ? aStruct[i,1], aStruct[i,2], aStruct[i,3], aStruct[i,4] Next ? "Fields: ", oQuery:Fcount() oRow := oQuery:Blank() ? oRow:FCount(), ; oRow:Fieldpos('sales'), ; oRow:Fieldget(1), ; oRow:Fieldname(2), ; oRow:Fieldtype(1), ; oRow:Fielddec(1), ; oRow:Fieldlen(1) oRow:Fieldput(1, 150) oRow:Fieldput(2, 'MY TEST') ? oRow:Fieldget(1), oRow:Fieldget(2) ? oRow:aRow[1], oRow:aRow[2], oRow:aOld[1], oRow:aOld[2] ? oQuery:Append(oRow) ? oQuery:ErrorMsg() DO WHILE ! oQuery:Eof() ? oQuery:Recno(),; oQuery:Fieldpos('code'),; oQuery:Fieldget(oQuery:Fieldpos('code')), ; oQuery:Fieldget(4), ; oQuery:Fieldget(2), ; oQuery:Fieldname(1),; oQuery:Fieldtype(1), ; oQuery:Fielddec(1), ; oQuery:Fieldlen(1),; oQuery:Fieldget(3) if oQuery:Recno() == 50 oRow := oQuery:getrow() oRow:Fieldput(2, 'My Second test') ? 'Update: ', oQuery:Update(oRow) endif if oQuery:Recno() == 60 oRow := oQuery:getrow() ? 'Delete: ', oQuery:Delete(oRow) endif oQuery:Skip() ENDDO oQuery:Refresh() For i := 1 to oQuery:Lastrec() oRow := oQuery:getrow(i) ? i, oRow:Fieldget(oRow:Fieldpos('code')), ; oRow:Fieldget(4), ; oRow:Fieldget(2), ; oRow:Fieldname(1),; oRow:Fieldtype(1), ; oRow:Fielddec(1), ; oRow:Fieldlen(1),; oRow:Fieldget(i, 3) NEXT oQuery:Destroy() oServer:Destroy() ? "Closing..." return nil 2010/3/7 Viktor Szakáts <harbour...@syenar.hu> > What sample code is this? > > Brgds, > Viktor > > On 2010 Mar 7, at 17:06, Bruno Luciani wrote: > > > I don't think it is an TPQUERY error > > > > but what do you think about the sample code ? > > > > Bruno > > > > 2010/3/7 Viktor Szakáts <harbour...@syenar.hu> > > Hi, > > > > I can't find an ERROR method in TPQQUERY class, > > so no idea from here. > > > > Brgds, > > Viktor > > > > On 2010 Mar 7, at 16:45, Bruno Luciani wrote: > > > > > I get this error when run this part of simple.prg in postgres contrib, > previously works ok in similar statement a few lines before > > > I read about this error and may be an initialization error , but I just > try to do cQuery:="" and is the same error > > > > > > any Idea > > > thanks > > > > > > --------------------------- error -------------------------------- > > > > > > Inserting, declared transaction control > > > Error BASE/1081 Argument error: + > > > Called from TPQQUERY:ERROR(0) > > > Called from MAIN(79) > > > > > > > > > > > > ? 'Inserting, declared transaction control ' > > > oServer:StartTransaction() > > > cQuery:="" > > > For i := 1 to 10 > > > cQuery := "INSERT INTO ventas(code, dept, name, sales, tax, > salary, budget, Discount, Creation, Description) " > > > cQuery += "VALUES( " + str(i) + ", 2, 'TEST', 'y', 5, 3000, > 1500.2, 7.5, '12-22-2003', 'Short Description about what ? ')" > > > > > > oQuery := oServer:Query(cQuery) > > > > > > if oQuery:neterr() > > > ? oQuery:error() ---------------------------------> > this is line 79 > > > endif > > > > > > oQuery:destroy() > > > Next > > > > > > _______________________________________________ > > > Harbour mailing list (attachment size limit: 40KB) > > > Harbour@harbour-project.org > > > http://lists.harbour-project.org/mailman/listinfo/harbour > > > > _______________________________________________ > > Harbour mailing list (attachment size limit: 40KB) > > Harbour@harbour-project.org > > http://lists.harbour-project.org/mailman/listinfo/harbour > > > > _______________________________________________ > > Harbour mailing list (attachment size limit: 40KB) > > Harbour@harbour-project.org > > http://lists.harbour-project.org/mailman/listinfo/harbour > > _______________________________________________ > Harbour mailing list (attachment size limit: 40KB) > Harbour@harbour-project.org > http://lists.harbour-project.org/mailman/listinfo/harbour >
_______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour