Source: /app/hbasic/hbasic/src/hbdatabase.h


/* **************************************************************************
 File: hbdatabase.h
 ----------------------------------------------------------------------------
	copyright : (C) 2001 HBasic project (Marcus Engels)
 ***************************************************************************/
/* **************************************************************************
 * *
 * This program 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 of the License, or *
 * (at your option) any later version. *
 * *
 ***************************************************************************/
/* ----------------------------------------------------------------------- */
/* Classlist: List of classes that will be defined in this source file. */
/* ----------------------------------------------------------------------- */
/**
 Class HBDatabase: This class will be used as an interface to all
 database access functions. Every connection to a database needs
 at least one HBDatabase.
*/
/* ----------------------------------------------------------------------- */
/* Changelog: Description of important changes within this file. */
/* Please report with date, maintainer and change description. */
/* ----------------------------------------------------------------------- */
#ifndef HBDATABASE_H
#define HBDATABASE_H
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "../hbdata/hbobject.h"
#include "../hbdata/hbsublist.h"
#include "../src/structs.h"
#define STR_LENGTH 100
class QString;
class QPushButton;
class QDataBrowser;
class QSqlForm;
/* Global defined methods in hbdatabase.cpp */
void readDatabaseList(void);
void saveDbListToFile( void );
int getCurrentDriverType( void );
#define DTYPE_UNDEF 0
#define DTYPE_MYSQL3 1
#define DTYPE_PSQL7 2
class HBDatabase : public QObject, public HBObject
{
Q_OBJECT
Q_PROPERTY( QString dbname READ getDbName WRITE setDbName )
Q_PROPERTY( QString host READ getHost WRITE setHost )
Q_PROPERTY( QString driver READ getDriver WRITE setDriver )
Q_PROPERTY( QString user READ getUser WRITE setUser )
Q_PROPERTY( QString password READ getPassword WRITE setPassword )
Q_PROPERTY( QString desc READ getDesc WRITE setDesc )
public:
	HBDatabase( char *name );
	short prepareConnect( void );
	HBSubList *getColumnList( HBDbTable *table_ptr );
	short loadTableList( short force_rebuild );
	HBDbTable *findTableDesc( char *table_name );
	HBDbTable *bindQueryColumns( QSqlCursor *query_cursor );
	long compMemLength( HBDbColumn *query_column_ptr );
	HBDbColumn *prepareQueryDesc( void );
	void getDbControl( QString *dsn_name );
	void execDirect( QString *statement );
	/**
	 * Create a connection to a QT database description.
	 */
	short connectDatabase( void );
	/**
	 * Close current database connection.
	 */
	void closeConnection( void );
	/* db_desc */
public:
	/* Name of database driver description in name-field of Qobject */
	/* dbname is the name of the database on the server */
	QString *dbname;
	QString *str_host;
	QString *driver;
	QString *desc;
	QString *user;
	QString *password;
	short save_pw; /* TRUE if password should be saved to file for this DSN */
	QSqlDatabase *qt_db_desc; /* pointer to qt database description widget. */
	void loadColumnList( HBDbTable *table_ptr );
	void setDbName( QString new_name );
	QString getDbName( void ) const;
	void setHost( QString new_name );
	QString getHost( void ) const;
	void setDriver( QString new_name );
	QString getDriver( void ) const;
	void setUser( QString new_name );
	QString getUser( void ) const;
	void setPassword( QString new_name );
	QString getPassword( void ) const;
	void setDesc( QString new_name );
	QString getDesc( void ) const;
private:
	void prepareQuery(void);
};
class DBCursorForm : public QWidget
{
	Q_OBJECT
	Q_PROPERTY( QString DB_TABLE READ getDbTable WRITE setDbTable )
private:
	QDataBrowser *db_browse;
	QSqlCursor *sql_cursor;
	QString *table_name;
	QWidget *wgt_ptr;
	HBDatabase *db_control;
public:
	DBCursorForm( QWidget *parent );
	void resizeEvent( QResizeEvent *evt );
	void initDataBrowser( QWidget *wgt );
	QSqlForm *form_ptr;
private:
	QPushButton *btn_first;
	QPushButton *btn_previous;
	QPushButton *btn_next;
	QPushButton *btn_last;
	QPushButton *btn_add;
	QPushButton *btn_delete;
	QString prop_db_table;
private slots:
	void slotBtnFirstClicked( void );
	void slotBtnPreviousClicked( void );
	void slotBtnNextClicked( void );
	void slotBtnLastClicked( void );
	void slotBtnAddClicked( void );
	void slotBtnDeleteClicked( void );
public slots:
	/* Property db_table */
	QString getDbTable( void ) const;
	void setDbTable( const QString & );
};
/*-------------------------------------------------------------------------- */
class ColumnEditor : public QLineEdit
{
	Q_OBJECT
	Q_PROPERTY( QString DB_COLUMN READ getDbColumn WRITE setDbColumn )
public:
	ColumnEditor( QWidget *parent );
private:
	QString prop_db_column;
public slots:
	/* Property db_table */
	QString getDbColumn( void ) const;
	void setDbColumn( const QString & );
};
#endif

Generated by: root on linux on Sun Jul 13 18:06:35 2003, using kdoc 2.0a54.

AltStyle によって変換されたページ (->オリジナル) /