diff options
author | Slávek Banko <[email protected]> | 2023-01-03 00:52:18 +0100 |
---|---|---|
committer | Slávek Banko <[email protected]> | 2023-01-20 02:10:39 +0100 |
commit | 16434e5519f6224e231bc5f7202f0e495eda7bb7 (patch) | |
tree | d0a3bc5f18eb65f89c1e6238dcf579e6c9cb80ad /sip/tqtsql/tqsqlrecord.sip | |
parent | 1c362264d328c8886d33061ab992750741f7933a (diff) | |
download | pytqt-16434e5519f6224e231bc5f7202f0e495eda7bb7.tar.gz pytqt-16434e5519f6224e231bc5f7202f0e495eda7bb7.zip |
Do rename qt=>tqt on source files, directories and libraries.
Rename pyuic=>pytquic, pylupdate=>pytqlupdate.
Do rename qt=>tqt on constants and variables.
Do rename QT=>TQT on constants.
Signed-off-by: Slávek Banko <[email protected]>
Diffstat (limited to 'sip/tqtsql/tqsqlrecord.sip')
-rw-r--r-- | sip/tqtsql/tqsqlrecord.sip | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/sip/tqtsql/tqsqlrecord.sip b/sip/tqtsql/tqsqlrecord.sip new file mode 100644 index 0000000..4e79fac --- /dev/null +++ b/sip/tqtsql/tqsqlrecord.sip @@ -0,0 +1,171 @@ +// This is the SIP interface definition for TQSqlRecord and TQSqlRecordInfo. +// +// Copyright (c) 2007 +// Riverbank Computing Limited <[email protected]> +// +// This file is part of PyTQt. +// +// This copy of PyTQt is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2, or (at your option) any later +// version. +// +// PyTQt is supplied in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License along with +// PyTQt; see the file LICENSE. If not, write to the Free Software Foundation, +// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +%ExportedDoc +<Sect2><Title>TQSqlRecord (TQt v3+)</Title> +<Para> +<Literal>TQSqlRecord</Literal> is fully implemented. +</Para> +</Sect2> + +<Sect2><Title>TQSqlRecordInfo (TQt v3+)</Title> +<Para> +<Literal>TQSqlRecordInfo</Literal> is implemented as a Python list of +<Literal>TQSqlFieldInfo</Literal> instances. +</Para> +</Sect2> +%End + + +class TQSqlRecord +{ +%TypeHeaderCode +#include <tqsqlrecord.h> +%End + +public: + TQSqlRecord(); + TQSqlRecord(const TQSqlRecord &); + + virtual TQVariant value(int) const; + virtual TQVariant value(const TQString &) const; + virtual void setValue(int,const TQVariant &); + virtual void setValue(const TQString &,const TQVariant &); + bool isGenerated(int) const; + bool isGenerated(const TQString &) const; + virtual void setGenerated(const TQString &,bool); + virtual void setGenerated(int,bool); + virtual void setNull(int); + virtual void setNull(const TQString &); + bool isNull(int); + bool isNull(const TQString &); +// bool isNull(int) const; +// bool isNull(const TQString &) const; + + int position(const TQString &) const; + TQString fieldName(int) const; + TQSqlField *field(int); + TQSqlField *field(const TQString &); +// const TQSqlField *field(int) const; +// const TQSqlField *field(const TQString &) const; + + virtual void append(const TQSqlField &); + virtual void insert(int,const TQSqlField &); + virtual void remove(int); + + bool isEmpty() const; + bool contains(const TQString &) const; + virtual void clear(); + virtual void clearValues(bool = 0); + uint count() const; + virtual TQString toString(const TQString & = TQString::null, + const TQString & = ",") const; + virtual TQStringList toStringList(const TQString & = TQString::null) const; +}; + + +%MappedType TQSqlRecordInfo +{ +%TypeHeaderCode +#include <tqsqlrecord.h> +%End + +%ConvertFromTypeCode + // Convert to a Python list of TQSqlFieldInfo instances. + + int i; + PyObject *l; + + // Create the list. + + if ((l = PyList_New(sipCpp -> count())) == NULL) + return NULL; + + // Get it. + + i = 0; + TQValueListConstIterator<TQSqlFieldInfo> it; + + for (it = sipCpp -> begin(); it != sipCpp -> end(); ++it) + { + PyObject *tmobj; + + if ((tmobj = sipConvertFromNewInstance(new TQSqlFieldInfo(*it),sipClass_TQSqlFieldInfo,sipTransferObj)) == NULL || PyList_SetItem(l,i,tmobj) < 0) + { + Py_XDECREF(tmobj); + Py_DECREF(l); + + return NULL; + } + + ++i; + } + + return l; +%End + + +%ConvertToTypeCode + // Convert a Python list of TQSqlFieldInfo instances to a TQSqlRecordInfo + // on the heap. + + if (sipIsErr == NULL) + { + if (!PyList_Check(sipPy)) + return 0; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + if (!sipCanConvertToInstance(PyList_GET_ITEM(sipPy,i),sipClass_TQSqlFieldInfo,SIP_NOT_NONE)) + return 0; + + return 1; + } + + TQSqlRecordInfo *qri = new TQSqlRecordInfo; + + for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i) + { + int iserr = 0, state; + + // We apply the transfer to the list itself, not the elements. + TQSqlFieldInfo *itm = reinterpret_cast<TQSqlFieldInfo *>(sipConvertToInstance(PyList_GET_ITEM(sipPy,i),sipClass_TQSqlFieldInfo,0,SIP_NOT_NONE,&state,&iserr)); + + if (iserr) + { + sipReleaseInstance(itm,sipClass_TQSqlFieldInfo,state); + + *sipIsErr = 1; + delete qri; + + return 0; + } + + qri -> append(*itm); + + sipReleaseInstance(itm,sipClass_TQSqlFieldInfo,state); + } + + *sipCppPtr = qri; + + return sipGetState(sipTransferObj); +%End +}; |