KDb
20 #include "KDbSimpleCommandLineApp.h"
23 #include <QTextStream>
25 #include <KCmdLineArgs>
26 #include <KComponentData>
28 #include "KDbConnectionData.h"
29 #include "KDbDriverManager.h"
46 KComponentData componentData;
50 Q_DISABLE_COPY(Private)
56 int argc,
char** argv,
const KCmdLineOptions &options,
57 const char *programName,
const char *version,
58 const char *shortDescription, KAboutData::LicenseKey licenseType,
59 const char *copyrightStatement,
const char *text,
60 const char *homePageAddress,
const char *bugsEmailAddress)
66 KCmdLineArgs::init(argc, argv,
68 version, tr(shortDescription), licenseType, tr(copyrightStatement), tr(text),
69 homePageAddress, bugsEmailAddress));
71 d->componentData = KComponentData(
appName);
73 KCmdLineOptions allOptions;
77 allOptions.add(
"driver <id>", tr(
"Database driver ID"));
79 allOptions.add(
"user <name>", tr(
"Database user name"));
81 allOptions.add(
"password", tr(
"Prompt for password"));
83 allOptions.add(
"host <name>", tr(
"Host (server) name"));
84 allOptions.add(
"port <number>", tr(
"Server's port number"));
86 allOptions.add(
"local-socket <filename>", tr(
"Server's local socket filename"));
89 allOptions.add(options);
91 KCmdLineArgs::addCmdLineOptions(allOptions);
92 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
94 d->connData.driverId = args->getOption(
"driver");
95 d->connData.userName = args->getOption(
"user");
96 d->connData.hostName = args->getOption(
"host");
97 d->connData.localSocketFileName = args->getOption(
"local-socket");
98 d->connData.port = args->getOption(
"port").toInt();
99 d->connData.useLocalSocketFile = args->isSet(
"local-socket");
101 if (args->isSet(
"password")) {
102 QString userAtHost = d->connData.userName;
103 if (!d->connData.userName.isEmpty())
105 userAtHost += (d->connData.hostName.isEmpty() ?
"localhost" : d->connData.hostName);
107 cout << tr(
"Enter password for %1: ",
"Enter password for <user>").arg(userAtHost);
110 cin >> d->connData.password;
111 kdbDebug() << d->connData.password;
115 KDbSimpleCommandLineApp::~KDbSimpleCommandLineApp()
124 if (d->manager.error()) {
125 setError(&d->manager);
130 KDbDriver *driver = d->manager.driver(d->connData.driverId);
131 if (!driver || d->manager.error()) {
132 setError(&d->manager);
137 d->connData.setFileName(databaseName);
140 if (!d->conn || driver->error()) {
145 if (d->conn->isConnected()) {
147 if (d->conn->isDatabaseUsed() && d->conn->currentDatabase() == databaseName)
152 if (!d->conn->connect()) {
159 if (!d->conn->useDatabase(databaseName)) {
172 if (!d->conn->disconnect()) {
181 return d->componentData;
KDbSimpleCommandLineApp(int argc, char **argv, const KCmdLineOptions &options, const char *programName, const char *version, const char *shortDescription=0, KAboutData::LicenseKey licenseType=KAboutData::License_Unknown, const char *copyrightStatement=0, const char *text=0, const char *homePageAddress=0, const char *bugsEmailAddress="
[email protected]")
Database driver's abstraction.
QByteArray toLatin1() const const
KDbConnection * connection() const
KDbConnection * createConnection(const KDbConnectionData &connData, const KDbConnectionOptions &options)
QString baseName() const const
A skeleton for creating a simple command line database application.
QCA_EXPORT QString appName()
KDB_EXPORT QString defaultFileBasedDriverId()
bool openDatabase(const QString &databaseName)
const KComponentData & componentData() const
Database specific connection data, e.g. host, port.
A driver manager for finding and loading driver plugins.
Provides database connection, allowing queries and data modification.
const KDbDriverMetaData * metaData() const
KDbConnectionData * connectionData() const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Jun 6 2023 04:06:19 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.