kexi project
Rapid Database Application Development
Development
"Microsoft Access for Linux"

Home Download FAQ Support Features Handbook Screenshots Screencasts Compile Kexi Development Authors Contact License Sponsorship Translate This Site

wiki navigation:

Front Page
[info] [diff] [login]
[recent changes]
[most popular]
You can donate
to Kexi Project:
Via PayPal

Spread the word about Kexi!
Get Kexi Now!

Built on the KDE technology
KDE

Member of the Calligra Suite

No Software Patents!

Kexi Frequently Asked Questions

Contact us if you know about something valuable that should be documented here.

Table of Contents
     1. General Features
     2. Common Mistakes to Avoid
     3. File Formats
     4. Database Support & Data Migration
     5. Scripting
     6. Development
     7. Contributions
     See also

1. General Features

Q1.1: What features Kexi currently offers?
A1.1: Read the Kexi Features page, look at the screenshots. Use the Kexi handbook.
Find an announcement for the newest release and look at the "Unsupported features" document added for this release.
Q1.2: How to use database servers with Kexi?
A1.2: First, note that you do not need to use database servers at all - you can use file-based builtin database server built into Kexi (SQLite-based, very much like MS Access, but a bit more robust).
If you want database servers, PostgreSQL and MySQL are supported. Create a new blank database project on server using Kexi's startup dialogs. Kexi will ask you to define connection data with connection dialog and select database name, so you will be able to just pick this predefined connection later. You can also use command line options to create and drop database projects. Also read here (october 2004).
Notes:
- Kexi assumes the account of the database server you use has enough permissions for creating a new database and use it. You may want alter the permissions (at least temporarily) using administration tools dedicated for your database server (Kexi itself does not contain such tools). If you're unsure how to do this, ask your database administrator or support.
- Currently you can not "open" (i.e. connect to) databases created outside of Kexi. You can only import the tables and data.
- You can also use .kexis shortcut files to store database connection parameter for later reuse. Read here.
- If you cannot see database drivers available in the "Creating New Project" wizard, make sure that you have installed a package with appropriate database Kexi driver, e.g. koffice-database-psql or koffice-database-mysql for SUSE. If you compile from the source code, make sure you have met compile-time requirements for the drivers (if not, a note is displayed at the configure stage), and after the first compilation you can run 'kbuildsycoca --noincremental' to be sure the driver(s) are visible to KDE and Kexi.
Q1.3: How stable is Kexi?
A1.3: Read Kexi Stability Statement document.
Q1.4: Where can I find Kexi documentation (The Handbook)
A1.4: A few introductory chapters are available for Kexi 1.0. Original Handbook contributed by Jaroslaw Staniek is being (june 2005) translated from polish to english. The work in progress is here. These should be probably available in other other languages as well (depends on translators' interest).
Q1.5: How could I define database relationships with integrity rules for my tables?
A1.5: This is planned for Kexi 2. Combo box widgets allowing to select values and subforms will be available as well.
Q1.6: Reports in Kexi?
A1.6: Currently none except Simple Printouts: (File->Page Setup, then Print), available since Kexi 1.0. Report designer is planned after 1.0. As an alternative, since Kexi 1.0 version, you can also copy your data sheets to clipboard (using Edit->Copy Special menubar command) or to a CSV file (using File->Export menubar command). Then paste the data into a program like a KSpread/OpenOffice.org Calc/MS Excel spreadsheet allowing you to print your data (or open the saved CSV file, respectively).
Q1.7: Web pages or web forms in Kexi?
A1.7: Not yet. WebObjects-like features are planned. We will take advantage of rich database project's schema available in Kexi designs, so web pages could be generated highly automatically and in a dynamic way. See also: Web.
Q1.8: Is it possible to change the name of a field in an existing table without losing the data? Or adding/deleting a fiels?
A1.8: For Kexi 1.x there are no GUI functions to achieve this. For workarounds, please see the links attached to this mailing list post. In development for Kexi 2.
The idea of workaround (needed because SQLite has no support for altering of table design) is that you can copy the data, alter the table (which empties it), and then import the data in the altered table. This is the way how the scripts like ksqlite_add_column and kexi_delete_column work.
Q1.9: How to use LIKE operator?
A1.9: The Visual Designer does not yet accept like 'abc%' expressions. As a workaround SQL View can be used: enter SQL condition like: "SELECT owner FROM cars WHERE cars.model LIKE 'Ford%'. More info.
Q1.10: How to open a table/query/form, execute a script, create a new object or print data automatically after opening the database?
A1.10: You can add command line options to your command line. Please read Options related to opening objects. If you want to provide desktop shortcuts (convenient for your users), alter (right-click) the KDE shortcut's properties by adding the option(s). For example shortcut can have specified "kexi --open query:myquery mydb.kexi" command for automatic opening of myquery query. This approach is also available within Windows or Mac OS X shortcuts.
You can add as many "autoopening" options as you want for a single database.
^ toc

2. Common Mistakes to Avoid

Q2.1: I am trying to create a blank database ("New project stored in file") and got following error: "could not find databse driver...". I must miss some SQLite library?
A2.1: SQLite library needed by Kexi has been installed in your operating system already automatically when you installed Kexi. If you compiled Kexi on your own, you most probably have not installed Kexi properly. Do this using 'make install' in calligra/ source code directory from the command line. This will copy (and install) all required libraries and configuration files. You may also want to run 'kbuildsycoca4 --noincremental' from command line to update your "configuration cache".
Q2.2: I entered some data to my tables and noticed that the 'Save' menu item is grayed out. How can I save my data?
A2.2: You need to know that Kexi is not document driven. After you opened a project file (or database connection), every change is saved almost immediately after accepting row editing (or even after cell accepting).
Q2.3: You told me the bug xyz is already fixed in the developer's Subversion. But I updated my sources and looks like it's still there...
A2.3: If you're using anonymous CVS account, note there is delay between what is in REAL cvs and what you can see, so try update later (5 hours or even next day?). Sorry. If you're really active tester/bug hunter, consider getting CVS account.
UPDATE: We have switched to Subversion revision control system. For now the delay described above should disappear. See here.
Q2.4: I created a Kexi project on my server (MySQL or PostgreSQL) but I could not connect (open it). I got error like Invalid database contents. "kexidb_major_ver" database property not found. Server result number: 0.
A2.4: Check your user privileges on database server. To create a new database you need one or more privileges to do so, the same for creating new tables. Since even empty Kexi project contains a few "system" tables, you need enough privileges when conencting to the server, so Kexi can create these tables.
Note: For now, Kexi has no tools to manipulate user's privileges, you need to use administration tools dedicated for your database, like MySQL Admin, etc. You (not Kexi), are responsible for maintaining security when assigning privileges. Future Kexi versions may contain useful administration tools.
Q2.5: I am trying to connect to an existing (MySQL) database on my server with command "kexi --drv mysql --host mysrv -u myname testdb" and got this message: could not open project 'testdb'. invalid database contents. "kexidb_major_ver" database property not found.
A2.5: invalid database contents message means that your database is not Kexi-compatible, because most probably it was created without (outside of) Kexi. Thus, the database does not contain kexi-specific tables (with metadata and other information).
To reuse your data and database schema you should consider using Kexi Migration Tools, available in 'Tools' menu. For now, please don't expect handling every custom MySQL feature there, especially because Kexi is not database frontend/admin tool but just utilizes database engines, for efficient and safe storage. Use other tools for administering your native (non-Kexi) databases, e.g. this.
See also question 4.3.
^ toc

3. File Formats

Q3.1: I wonder which is Kexi's native file-format?
A3.1: There is currently one file format: it is just standard SQLite database file (binary file), with .kexi extension. Any extensions made to this file are just special, so called "system tables" storted in this database (with names started with "kexi__").
Q3.2: So, what is difference when I use database server instead of .kexi file for my project?
A3.2: The difference may be in: multiuser access, security, database size (even though SQLite can work with large data). From your perspective, Kexi Graphical User Interface is the same regardless what database storage medium you're currently using (that is Kexi's strong point).
Q3.3: Why not XML as native format?
A3.3: Kexi is not document-driven, it's project driven instead. Using XML is a good way to decrease efficiency of databases by a factor of 1000 or so :) Of course XML data export (e.g. data from tables or queries) is possible. Currently available is data exporting to XHTML using additional Python script. On the other hand you can always store XML in table cells - as text.
^ toc

4. Database Support & Data Migration

Q4.1: Is reading/writing of Microsoft Access .mdb/.mde files available? If so, how feature-rich is this module?
A4.1: Currently, importing table schemas and data is supported using import driver (MS Access data types are carefully mapped to Kexi data types) from .mdb/.mde files. Importing queries, forms, reports and web pages is not yet supported.
For Linux/Unix operating systems the import driver is available as separate package - find "MS Access import plugin for Kexi" item for your distribution on the Packages page. On Windows the driver is bundled in the installation package. See MDBDriver for more info, including a list of MS Access versions that are supported.
Q4.2: Kexi does not display tables created outside it's interface. E.g. I am using pysqlite to create table in a sqlite database. Kexi opens the database properly. But the table created with python is not visible in Kexi.
A4.2: To see external tables you will need to use importing functions. While importing, Kexi autodetects externally-created tables and propose to import them with data.
For Kexi 2.x there is also plan to allow displaying externally-created tables in Kexi interface without 'importing' them, i.e. linking them. This will lead to smaller functionality set available for these tables, but enable connections to existing (sometimes large) databases that are available as read only. The feature would be usable especially for advanced users who know what they are doing.
Optionally, if you don't want to import your external database again and again, as a temporary workaround, you can: 1. create a new database with the same tables schema as the original one (e.g. by importing the database without importing the data), 2. dump the kexi__** "system" tables definitions and contents to the .sql script file, 3. execute the .sql script file within the original database. Then, you Kexi should be able to connect to the original database without problems and see your tables. This workaround only requires you to have write priviledges within the original database for step 3.
Q4.3: How can I migrate my data to Kexi project or from it
A4.3: You can use Kexi Migration Tools: 'Tools->Import Database' menu command or save your data to Comma-Separated-Values format (CSV). You can also export a CSV data e.g. from MS Access table, OpenOffice Calc, KSpread or Excel spreadsheets, and then use "File->Import->Data Table" menu command (appending data to tabes is not yet avaiable yet).
Q4.4: How can I export Kexi database to a plain text containing SQL statements?
A4.4: It's not available in Kexi GUI but you can use command line tools attached to Kexi. For SQLite3-based Kexi files, use ".dump" command of ksqlite - execute "ksqlite mydb.kexi .dump > dump.sql" to get dump.sql file.
For SQLite2-based Kexi files use ksqlite2 command instead. For server-based databases (MySQL, PostgreSQL) use administration tools dedicated for these backends, like MySQL Admin.
Q4.5: If I use Kexi with a PostgreSQL or MySQL server, can multiple people using Kexi work with the database?
A4.5: Yes, it's the idea behind using the server. So far, Kexi expects every user to have account on the server. Some accounts can be set as read-only by db administrator or permissions can be more fine-grained set, up to table level. All such administration is independent of Kexi now and must be performed using server-specific (GUI or command-line) administration tools.
Q4.6: What if two people are using kexi with the same database account and the same database, will that cause problems?
A4.6: Depends on the database itself, but probably it will not be a problem on the server side. There's only one thing: you may need to "refesh" your data views when needed, e.g. refresh view of your form or table or query view, while others edit it. Currently this can be performed by opening the form/table/query window again. Currently, sometimes it's needed to close the entire database project and open it again if the database schema has been changed by other users.
Q4.7: Can I use MySQL 3.23 or earlier versions?
A4.7: Yes, but MySQL 3.23 is a very old version; the current recommended release is 5.0 (or at least >=4.1). Version 3.23 will still work, but you will miss out on a number of features and bug fixes added in the last few years. In particular, you will miss transactions and supprot for unicode text data. Better upgrade before starting your project.
^ toc

5. Scripting

Q5.1: How can I do scripting with Kexi?
A5.1: Python and Ruby scripting is available in Kexi. There are two kinds of scripts: 1. one that is saved within a database and operated on it, 2. one that is saved as external script file and is installed as a custom tool in Tools menu Java Script (using KJS) support is in development too. See Scripting for more information. Scripting is available on Linux/Unix and are planned for MS Windows.
^ toc

6. Development

Q6.1: How to install Kexi from sources?
A6.1: See Compiling Kexi document.
Q6.2: Why Kexi requires newest Qt and KDE? I am using KDE 3.1 and Qt 3.1.
A6.2: Kexi needs Qt 3.2 and KDE 3.2 or newer. we believe this is neither too newest nor too mad requirement, since Linux many distributions switched at least to Qt/KDE versions 3.2. We just needed to pick something as our base requirement and we plan to maintain compatibility with that base probably for a long time. We've just no resources to support kde 3.1/Qt 3.1, especially maily because of KMDI library that was not available for KDE3.1 and needed improvements. On the other hand, preparing Kexi for KDE 3.1 is still relatively easy.
Q6.3: I wonder why do you offer another database connectivity API and libraries? There's QtSQL module that looks great...
A6.3: Indeed, QtSQL may look great for your purposes, however for database designer app, like Kexi, there are more requirements than you may expect from QtSQL.
Q6.4: I'd like to reuse KexiDB in my KDE application to take advantage of the database layer. Where should I go to start doing it?
A6.4: See also Projects Using Kexi Components and Kexi Components For Reuse.
Q6.5: How about a possibility of reusing Kexi's great data-aware components like KexiDataTableView(external), forms, record navigators?
A6.5: These components, and also KexiProperty(external)/KexiPropertyEditor(external) framework (stored in core/ and widget/propertyeditor/ directories for now) are designed to be reusable, but for now depend on a few Kexi features. So, the stuff needs some extracting, probably after 1.0 version. See links in 6.4.
Q6.6: How Kexi compares to MS Access, OpenOffice.org Base, Knoda, DataKiosk, etc. etc.?
A6.6: Please read Comparisons document.
^ toc

7. Contributions

Q7.1: I have found a bug or I have wishes or proposals.
A7.1: You are welcome to do this. If you're repporting bugs, use KDE Bug Report Wizard. First check using this query tool if there's already similar bug reported.
To submit wishes or proposals, login to Kexi Bug Database (user name = 'guest', no password). Use "Report Bug" link. Make sure your bug is not listed in the database (use "View Bugs" to see the list).
Q7.2: I am developer - how can I help?
A7.2: See our requirements, Available Developer Jobs
Q7.3: I am translator - how can I help?
A7.3: Check if there's already Kexi translation for your language. First tak a look at the table at Translating Kexi page to see what is the state of a translation you're interested in. Then go to KDE Translators Center and contact your coordinator. Only propose your help if there is no assigned translator. Kexi Team is not coordinating translations.
Q7.4: I can create a package for X Linux/Unix distribution.
A7.4: Check in the Downloads section for packages. Maybe there's already such package for current or previous Kexi release? If unsure, ask us before wasting your time. Then read Hints For Making Kexi Packages.
Q7.5: I am not very skilled but I'd like to offer my help. I do not program Qt/KDE and have not too much free time, although I'm fan of KDE, Access, Linux. What can I do for Kexi?
A7.5: First, see Available Non-Developer Jobs. You can start contribute by advertise and advocate Kexi Project and help enybody who know less than you about the application. You can visit kexi-project.org web site from time to time and check if there's something that needs improvements or fixing. You may find typos in translations and report it to your translation team.
Q7.6: Is contributors list published somewhere?
A7.6: Yes, here
^ toc

See also

Form component (KFormDesigner) also has its own FAQ here.



Kexi - "MS Access for Linux" ... and Windows
© 2002-2007 Kexi Team
This content is available under GFDL
Last edited: February 25, 2008 by js, visited 0 times.