/***************************************************************************
                            QSqlDatabase.java -  description
                             -------------------
    begin                : Wed Nov 21 17:05:56 2001
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Nov 21 17:05:56 2001, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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.                                   *
 *                                                                         *
***************************************************************************/

package org.kde.qt;

import java.util.*;
import java.lang.Error;

/**


 Definition of QSqlDriver class

 Created : 2000-11-03

 Copyright (C) 2000 Trolltech AS.  All rights reserved.

 This file is part of the sql module of the Qt GUI Toolkit.

 This file may be distributed under the terms of the Q Public License
 as defined by Trolltech AS of Norway and appearing in the file
 LICENSE.QPL included in the packaging of this file.

 This file may be distributed and/or modified under the terms of the
 GNU General Public License version 2 as published by the Free Software
 Foundation and appearing in the file LICENSE.GPL included in the
 packaging of this file.

 Licensees holding valid Qt Enterprise Edition licenses may use this
 file in accordance with the Qt Commercial License Agreement provided
 with the Software.

 This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

 See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
   information about Qt Commercial License Agreements.
 See http://www.trolltech.com/qpl/ for QPL licensing information.
 See http://www.trolltech.com/gpl/ for GPL licensing information.

 Contact info@trolltech.com if any conditions of this licensing are
 not clear to you.


 See {@link QSqlDatabaseSignals} for signals emitted by QSqlDatabase.

 See {@link QSqlDatabaseEventHandling} for event handlers to override in subclasses of QSqlDatabase.

 @short 
*
* Definition of QSqlDriver class
*
* Created : 2000-11-03
*
* Copyright (C) 2000 Trolltech AS.
*/
public class QSqlDatabase extends QObject  {
	protected QSqlDatabase(Class dummy){super((Class) null);}

	protected native void finalize() throws InternalError;
	public native boolean open();
	public native boolean open( String user, String password);
	public native void close();
	public native boolean isOpen();
	public native boolean isOpenError();
	public native ArrayList tables();
	public native QSqlIndex primaryIndex( String tablename);
	public native QSqlRecord record( String tablename);
	public native QSqlRecord record( QSqlQueryInterface query);
	public native QSqlRecordInfo recordInfo( String tablename);
	public native QSqlRecordInfo recordInfo( QSqlQueryInterface query);
	public native QSqlQueryInterface exec( String query);
	public native QSqlError lastError();
	public native boolean transaction();
	public native boolean commit();
	public native boolean rollback();
	public native void setDatabaseName( String name);
	public native void setUserName( String name);
	public native void setPassword( String password);
	public native void setHostName( String host);
	public native void setPort( int p);
	public native String databaseName();
	public native String userName();
	public native String password();
	public native String hostName();
	public native String driverName();
	public native int port();
	public native QSqlDriver driver();
	public static native QSqlDatabase addDatabase( String type, String connectionName);
	public static native QSqlDatabase addDatabase( String type);
	public static native QSqlDatabase database( String connectionName, boolean open);
	public static native QSqlDatabase database();
	public static native void removeDatabase( String connectionName);
	public static native boolean contains( String connectionName);
	public static native boolean contains();
	public static native ArrayList drivers();
//	public static native void registerSqlDriver( String name, QSqlDriverCreatorBase dcb);
	public static native String defaultConnection();
	private native void newQSqlDatabase( String type, String name, QObject parent, String objname);
	public QSqlDatabase( String type, String name, QObject parent, String objname) {
		super((Class) null);
		newQSqlDatabase( type, name, parent, objname);
	}
	private native void newQSqlDatabase( String type, String name);
	public QSqlDatabase( String type, String name) {
		super((Class) null);
		newQSqlDatabase( type, name);
	}
}
