Vous êtes sur la page 1sur 24


Windows, Linux, Mac
Client/Server, Stand-alone computer, Mobile, Embedded




329 millions of billions of rows per table...

n enterprise's data is a vital resource. The Relational Database Management System lets you manage your data with complete security. Performances are astonishing. Used on over several millions of computers the world over, the flexibility and the adaptability of allow it to respond to the most demanding requirements of real-time mission critical applications. You too, choose !
HyperFileSQL has been distributed since 1988.

Table of Contents
Overview Local Mobile - embedded Client/Server Data types and index SQL Features Security Openness WINDEV and WEBDEV Tools Programming
List of supported SQL commands List of WLanguage commands

3 4 4 4 5 6 6 10 11 11 13 17
17 18

Vocabulary Who uses HyperFileSQ? Benefits Feature summary

21 22 22 24

HyperFileSQL sales-engineering documentation. Knowledge of WINDEV, WEBDEV or WINDEV Mobile is helpful. If you are not familiar with them, do not hesitate to request these products (free) full documentation.

Documentation version 2010-01

General points
HyperFileSQL is a powerful RDBMS (Relational Database Management System). HyperFileSQL comes in 3 versions: mobile version (embedded) local version (single computer or network) Client/Server (and cluster) version. HyperFileSQL is suited to any type of application: business applications, real-time mission-critical applications, software, application servers, Web servers, stand-alone PC or mobile devices.

performance, security, openness, flexibility

HyperFileSQL is the ideal choice for a database engine.
Openness: based on industry standards, HyperFileSQL does not lock

you into a proprietary solution. Flexibility: support for large volumes of data (several dozen billions of rows in a table) is insured. Platform independence the tables can be moved from a Client/Server platform to a mobile platform, from a Windows server to a Linux server, and so on. Extensibility: you can easily and without constraints go from one user to several hundred users, from a 2-tier architecture to a multi-tier architecture... Frugal in resources: the client/server engine takes up less than 20 MB of disk space. HyperFileSQL works in heterogeneous environments: Windows, Linux, Mac, TSE, Citrix, ADSL, VPN, Wi-Fi The forward and backward compatibilityof the tables is insured. Longevity of the publisher: PC Soft has been in business for over 25 years. Performance, scalability: thanks to an optimized index management and a fine-tuned cache management, speed is consistent. Access security: protection against SQL injection attacks is insured through the automatic creation of secure UIs.

Reduced total cost of ownership (TCO)

One aspect of HyperFileSQL is its free and unlimited deployment (see the license). There is no cost associated with it in terms of number of processors on the server, or in terms of client computers, or based on the type of application (business app), no annual fees, etc...

SERVER MOBILE INDOWS 7 VISTA (32 BITS, 64 BITS) XP 2000, 2003, 2008 NT

100% Windows 100% Linux 100% Mobile

HyperFileSQL comes as a complete, fully-featured product, and is free. Maintenance costs are minimal. The technical support is also free of charges (as part of a WINDEV, WEBDEV or a WINDEV Mobile license). It is provided by phone and e-mail. DBAs and developers also have access to very active professional news groups (moderated). Service pack type updates are regularly made available for free.









H y p e r F i l e S Q L w w w. w i n d e v. c o m

Local version (classic version)
The local version (stand-alone and network) of HyperFileSQL (also called "Classic" version, because it is the original version that was available back in 1988) offers high performance, ease of deployment, configuration and setup. It is fully compatible with the mobile and Client/Server versions (tables, index, relationships, constraints). This version is mainly intended for stand-alone computers, and small networks. A common use of the Classic version is in a custom software. The database will be created and installed automatically on the PC of the custom software user. Maintenance will be automatic. A Classic database can also be found on a USB key and used directly from the key. HyperFileSQL Classic can be installed on machines equipped with Windows (98, NT, 2000, 2003, Vista, 7,), MacOS and Linux servers.

It is fully compatible with the local and Client/Server versions (tables, index, relationships, constraints). Depending on your needs, data access in a mobile application can be done from a large number of technologies: ActiveSync, direct access, RPC access, Web services, sockets, direct stored procedures, etc...

Imagine, 128 Giga bytes on a memory card. Only a few years ago this was the capacity of the hard drive on a desktop PC! Now you can easily and at little cost embed large size (up to 130 million rows) secure databases onto your pockets, mobiles and phones.

Client/Server version
The Client/Server version of HyperFileSQL is the ideal version for managing a large number of users and remote accesses. Local and remote accesses are supported. The installation is child's play, and the administration, although very powerful, is easily performed.

HyperFileSQL also works on Mac

HyperFileSQL is not limited in the number of processors used, or in memory. Load balancing is supported for better response times. The engine is self-restart. Clusters offer failure-proof availability. It is fully compatible with the local and embedded versions (tables, index, relationships, constraints). HyperFileSQL works both in 32-bit and 64-bit mode. Servers and clients can be mixed. Some of the supported Windows servers: Windows Server 2008 Windows Server 2003 Windows 2000 Windows XP & Vista, Windows 7 in all their versions. Some of the supported Linux distributions: RedHat 9 Debian 4.0 OpenSuse 10.3 and 11.1 Ubuntu 7.10, 8.04 and 8.10 Fedora 8 and 9 Mandriva 2008 Among the supported clients: 32-bit and 64-bit Windows Linux MacOS Windows CE and Mobile

Mobile version (embedded)

HyperFileSQL is totally adapted to the ever expanding realm of mobile devices of any type. HyperFileSQL only requires small resources, and can be installed on any mobile device (terminal, pocket PC, smartphone, Windows phone) that runs Windows CE or Windows Mobile. The installation is child's play and the seldom needed maintenance is automated. Performances will surprise you.

H y p e r F i l e S Q L w w w. w i n d e v. c o m


Data type
HyperFileSQL manages all types of data: Text, character Numeric (integer, real, float with 38 significant digits), Date, time, duration Boolean Array type column Blob ("memo", binary format: image, video,...) Powerful features are available: Unicode is supported, with support for linguistic sorts The sort order of all character sets is taken into account. Default value Null management.

HyperFileSQL insures data integrity by managing : Uniqueness constraints Cardinality constraints Automatic identifier Primary and foreign keys.

Full-text index
The "full-text" search allows for very fast string (word or expression) searches inside your data. For instance, you can find a word among 1 million rows in less than 2 ms (average per occurrence found). It is possible to index texts found in a HyperFileSQL database without any programming. Results are offered according to a relevance order (ranking). The index can support rich text (RTF, HTML), ignoring their tags during the indexing process. This feature enables you to perform searches on words stored inside RTF or HTML documents.

HyperFileSQL supports Unicode text columns and Unicode blob columns. Indexes can be sorted by the alphabetical order corresponding to each language (Russian from Russia or Ukraine, Chinese from Singapore, Taiwan, Hong Kong, Macao,...).

Data in Chinese

A reminder about operating systems: Windows runs in Unicode mode on mobile environments, while Windows for PC runs in ANSI mode. When needed, WLanguage automatically converts Unicode strings into ANSI (and conversely) based on the current character set.

These texts can be found in text type controls or blob (memo) type controls. A full-text index can index one or more columns, therefore a search can be performed on several columns at the same time.

HyperFileSQL Client/Server offers high storage capacity, in line with current and future storage means, as well as with the increasing demands from enterprises. During a recent road show in front of about 10,000 professional developers, PC SOFT presented a HyperFileSQL database containing more than 15 billion (15,000 million) rows: data searches were instant once the server was started (without even filling the cache!).

Index & Keys

HyperFileSQL manages keys and indexes for all types of columns. In order to insure optimal performances, HyperFileSQL automatically creates an index when defining a key. The following are supported: Simple index Composite index (multi-column) Partial index Full-text index

H y p e r F i l e S Q L w w w. w i n d e v. c o m


Columns per table Index per table Rows per table Table size Row size Column size Size of a blob column (text memo, image, video, binary, etc.)

65,535 65,535 329 millions of billions 4 millions of TB 2 GB 65,535 bytes 4 GB

HyperFileSQL offers a large number of features. You will find below a description of its main features.

Stored procedures (UDF)

Stored procedures (also sometimes called UDF) make it easier for you to modify and maintain your application by breaking up the code. When the way you calculate a result changes or when a business rule found in a stored procedure evolves, all you need to do is modify the stored procedure on the server, without modifying the deployed applications. A stored procedure limits the number of round-trips needed between the client and the server machine, and therefore, improves the processing speed. The same stored procedure can be shared among several applications. Stored procedures are programmed using WLanguage and therefore benefit from the rich feature set and ease of use of this 5GL. Stored procedures accept parameters and/or return integers, strings, dates, etc. It is really easy to create a stored procedure from the WINDEV environment.

HyperFileSQL supports a large portion of the Ansi SQL 92 standard. The SQL supported by HyperFileSQL also includes a large number of additional SQL Server and Oracle specific syntax, among other things. HyperFileSQL supports sub-queries and embedded queries. HyperFileSQL supports union operators: union, Cartesian join, join, external join; aggregation operators: count, sum, avg, min, max; sort and group operators: group by, having, order by... In addition to SQL, you can benefit from the feature-rich WLanguage by directly using WLanguage functions and stored procedures (also developed in WLanguage). The speed of the SQL engine is optimized by using, among other things, the index statistics and the constraints to choose the best access index for queries. The advanced memory cache management also improves performances. The engine automatically manages the load balancing: if a client executes a lot of resource hungry queries , the server automatically balances the load in order to not penalize the other clients. Youll find the list of SQL functions supported by HyperFileSQL at the end of this document, as well as the other programming aspects (cursor programming).

In the data model editor

A trigger is used to start a stored procedure before or after a given event on a database table: for example, before deleting a row, or after modifying a row. A trigger provides tremendous security. The trigger will be executed regardless of the application or component that accesses the database and performs the defined operation, without the programmer having to do anything. Server triggers, as their name implies, are executed directly on the server. The right to create a trigger is defined along with the database's rights. The WINDEV environment alerts the developer to the presence of these triggers (the triggers are shown in the data model).

H y p e r F i l e S Q L w w w. w i n d e v. c o m

Integrity : constraint, deletion, cascading update

It is easy to define integrity constraints. The cardinalities can be configured: (0,n) ; (0,1); (1,n); (3,n); etc. Reflexive links are supported. Examples of referential integrity constraints: Referential integrity: The referential integrity will prevent an author from being erased as long as there is at least one book referring to this author. Therefore you cannot delete a row from a table if this row is linked to other table rows (e.g. you cannot delete a customer if there are invoices linked to this customer). The referential integrity can be defined by link from the data model editor. Cascading deletion: If a row is deleted from a table, the corresponding rows in the linked tables will also be deleted (this constraint can be enabled or disabled, through relationship).

Blob data compression

"Blob" type data (text or binary memo) can be compressed to optimize the space taken on disk. The space used can be significantly reduced.

frame compression

A log is a special table where all the operations performed on one or more tables from a given time are automatically stored. The log contains the history of the table use, in other words: the complete row before handling or modification by the user the complete row after handling or modification by the user the person who used or modified the record the date and time of the operation or modification the nature of the operation performed: addition, modification, deletion, read the id of the computer that performed the modification the IP address of the computer that performed the operation the name of the application that performed the operation It is possible to perform the following operations from a log: restore the content of a logged table in case some data was lost or destroyed restore the content of a logged table until a certain date find the author, the date and the time of an operation performed on a specific row keep the history of a table use (to compute statistics for example) These operations can be run using a command line or the WDLog tool.

A frame is a data packet that travels over the network. HyperFileSQL, like all DBMS, uses frames to communicate between the client and the server machine. A server's data transfer speed depends both on the frame travel speed over the network and the size of these frames. In a local area network, the speed is so fast that the size of the frame only has a relative importance. On the other hand, for a remote access (DSL, 3G, ), the size of the frame is more important. In this context, reducing the size of the frames increases performance noticeably. Frame compression enables you to reduce the size of the packets (up to 95%) traveling on the network, by automatically applying a data compression algorithm In a remote connection context, especially if the connection speed is slow, there's a big advantage to compressing frames. The speed for remote connection is improved. Since the volume of data transiting through the transmission media is reduced, this can be a benefit for contracts that bill based on volume of data.

Automatic row lock

HyperFileSQL supports locks at the table level and at the row level. Support for row locks allows for better access performance.

Several databases on the same server

HyperFileSQL natively supports the presence of several databases on the same server. The databases are isolated. Specific rights can be defined for each database. This prevents you from having to use multiple servers.

Transactions: commit, rollback, crash recovery

A transaction is a set of indissociable operations: either all the operations in the transaction are performed, or none are performed. Transaction management is the best way to guarantee the coherence of a set of indissociable write operations on HyperFileSQL tables. A transaction is used to ensure that updates performed on one or more tables have completed properly.

H y p e r F i l e S Q L w w w. w i n d e v. c o m

Automatic reconnection
This feature automatically takes care of dropped connections between client and server. Usually, this problem occurs with hardware whose connection with the server is not always on: mobile devices (Wi-Fi, 3G, ) notably. In Wi-Fi connection for instance, the link between a remote device and the server can be dropped briefly. This can also happen on regular wired networks. When the application is reconnected, we need to resume the application at the point where the connection was interrupted, and make sure the buffers are accurate. With the automatic resume, all the buffers and positions are stored and reassigned. The application can resume without any error, as if the connection never was interrupted.You can also manage the connection interruptions by programming, or execute additional processes if you want.

The execution of a stored procedure before and/or after the backup allows for automated processes to be run: send e-mail, copy the backup on the network, etc. The number of backups to keep can be specified. The backup can be performed: on the live database, without disconnecting users transparently, without disturbing the running of the applications.

Integrated sequencer (scheduled tasks)

HyperFileSQL includes an integrated sequencer that allows you to define scheduled tasks. A task doesn't only mean allowing the execution of a stored procedure (UDF), but also allowing a backup or an automatic performance optimization to be triggered. The definition is done through the Control Center or by programming. The sequencer allows the DBA to program the automatic execution of tasks on the server; it allows, for example, to perform batch processes. Using the sequencer is more performing than running the commands in the Windows task scheduler or the Linux "cron" process. The tasks can be run at a set date, with one or more regular intervals. You can create, add, modify, enable, disable programmed tasks by coding or through the administration tool, as long as you have the proper rights.


Configuration of a backup

Backing up is an extremely important feature for databases. You can save the entire server or only a single database, or a selection of tables, with or without index. HyperFileSQL supports hot, differential backups. A backup is portable, from Windows to Linux for instance, or from a Client/Server version to a Classic version. A backup can be triggered from the Control Center (instant backup, scheduled backup), or by coding, directly from the application. The schedule for a complete backup and a differential backup can be specified (example: 1 full backup every month and 1 differential backup every week).

Graphical and user friendly interface of the sequencer (scheduled tasks)

Example of possible parameters: Every month or only some months Every day or only some days (every Mondays, or the 4th of every month for example) At a given time or every n hours and/or minutes. Number of times the task must be executed (10 times or no end date for example).

H y p e r F i l e S Q L w w w. w i n d e v. c o m

Universal replication
The universal replication works regardless of the database used. You can, for example, replicate HyperFileSQL data among themselves or with Oracle data or with data coming from any other database. Replication can be one-direction or multi-direction, and can be performed using different media: computers connected to the network, USB key, Internet, GPRS, 3G, etc.
Any database: HyperFileSQL, Oracle, SAP, AS/400, MySQL, mobile... Any media: locally, via the network, via modem, via Internet, Wi-Fi, GPRS...

Cluster (server farm)

Any database: HyperFileSQL, Oracle, AS/400, MySQL, mobile...

A replication is defined with the help of a replication wizard or by programming.

Offline replication
The "offline replication" mode allows a replication to manage itself in stand-alone mode. The replication is performed without being constantly connected to the server hosting the other database. The principle is simple: the replica is sent to the replication server (via Internet, USB key, etc.) The link with the server becomes useless once done.

Thanks to the cluster feature, a set of physical servers appears as a single server to the clients. The potential failure of a physical server does not prevent access to the database (high availability, fault tolerance). The servers automatically replicate each other in real time. The read load charge is distributed on all the servers (load balancing for reading). You can add and remove servers while live. If a server crashes, it automatically resynchronizes when it restarts. When a user is connected to a server that fails, the application won't be disconnected but automatically reconnected to a valid server (automatic fall over). Clustering is also very useful for SaaS infrastructures.

Automatic data modification for each site (SDD)

Which programmer, which database administrator hasn't cursed the time lost writing those infamous "hacks" (scripts) to add a column or an index to an existing table, or to change a data type in a column? The problem is even more complex when several different versions of the application are in use: you need to check the version of the database as well. Writing those hacks is always tricky because they alter the data. No more of this with HyperFileSQL! HyperFileSQL transparently manages structural changes to the data (schemas) through the SDD technology (Synchronization of Database Description). If for example a column has its size modified, or if a column is added, or still if the data type is changed (integer to real for instance) HyperFileSQL will automatically update the data in the relevant tables. A 100-version history is kept. No more hacks! No more scripts! No more scary "Alter table" commands! The update procedure, which will be installed and run automatically with your application's update, is automatically managed.

"Offline" replication

H y p e r F i l e S Q L w w w. w i n d e v. c o m

Access rights : authentication to establish the connection

The server has a user authentication system. It checks that a user is authorized to connect, and then that this user has the proper rights to run the requested queries: for example, the right to delete rows to run a deletion query. The tuning of rights is very granular: at the server level, at the database or the table level. It is done by programming or through a user-friendly interface. Passwords are not stored in clear on the server; only a hashed version is stored for security reasons. An expiration date can be set for passwords You can define user groups.
SDD: Automatic update of the data schema

SDD (Synchronization of the data description) automatically performs: The automatic comparison and synchronization of the database in respect to the schema to get The addition, deletion, renaming of a column The change of type, size The addition/deletion of key/index, addition/deletion of constraints The addition/deletion of triggers, stored procedures. SDD can also be started via a command line. Note that you don't need to use other script management tools to perform these tasks. Also note that SDD works regardless of the versions of the target database schemas. SDD works immediately on a n-3 version for instance. This SDD feature can be run : on the live database, without disconnecting users transparently, without interfering with the running of applications.

HyperFileSQL Control Center: defining rights

Link with other databases

You can also use HyperFileSQL in parallel with other databases. Actually, most Information Systems use several heterogeneous databases. The same application can use a HyperFileSQL database at the same time and simultaneously with other databases. HyperFileSQL also lets you easily import and export data from/to other databases.

At the server level: Right to delete or add users or groups Right to view the users and groups Right to create a database Right to change rights Right to stop the server Right to change one's own password Right to disconnect the user computers Right to send messages to the client computers Right to configure the server Right to configure the user priority Right to perform backups Right to configure the scheduled tasks Right to consult the server's activity statistics and log. On the database side: Right to add new rows in a data table Right to lock tables or table rows Right to change rights Right to modify the integrity rule on a table Right to modify the owner of an element Right to connect to the server (encrypted or non-encrypted connection, or only encrypted connection) Right to create a table by programming Right to enable and disable duplicate management Right to read a table's rows Right to start a reindex or statistics calculation on a table Right to start an automatic modification of the tables (SDD)

The integration, the automatic lock management, the Control Center, and so on, insure by their very presence a high security of use. Security specific features are also available.

H y p e r F i l e S Q L w w w. p c s o f t . f r


Right to modify a table's rows Right to delete a table's rows Right to delete a database Right to delete a table by programming Right to enable and disable integrity management Right to lock the access to a database Right to execute stored procedures and/or WLanguage commands in queries Right to configure the stored procedures Right to debug the stored procedures Right to modify the triggers Right to perform backups. On the table side: Right to add new rows in a table Right to lock tables or table rows Right to change rights Right to modify the integrity rule on a table Right to modify the owner of an element Right to enable and disable duplicate management Right to read a table's rows Right to start a reindex or statistics calculation on a table Right to start an automatic modification of the tables (SDD) on a table Right to modify a table's rows Right to delete a table's rows Right to delete a table by programming.

HyperFileSQL is open to all technologies and easily blends in any existing I.S.

ODBC driver
The provided ODBC driver allows third-party applications to access data stored on a HyperFileSQL server, such as PHP, Python, Tuby, Access, etc.

OLE DB Provider
Providing the OLE DB driver (in read and write mode), allows third-party applications to access the data stored on a HyperFileSQL server, such as C#, ASP.Net, Crystal Reports, Business Objects, PHP, Excel, etc.

Database import
The WDCONVER tool (provided with the product) lets you import Oracle, SQL Server, MySQL and so on databases. The import of the data schema is automatic. Data import from text formats (custom separators: tab, space, etc.), CSV, XML is also possible.

SQL injection impossible

The WINDEV window generator and the WEBDEV page generator, through the definition of edit controls that are automatically generated based on the data schema, make "SQL code injection" type attacks almost impossible, and this is done automatically. The data entered by the end user is automatically verified, in real time as soon as entered, and is not sent to the application if it is invalid or incoherent.


Encrypted connections
The connection between the client and the server can be encrypted. To define a high level of security, you can forbid non encrypted connections with the server.

Data encryption
Data access can be secured, and the data itself can be secured. The opening of the table can require a password. The data itself can be encrypted. Several encryption modes are supported: standard on 128 bits RC5 12 loops on 128 bits RC5 16 loops on 128 bits The mode and the encryption key can be defined: by programming in the data model editor. If a malicious person gains access to the encrypted data file (theft, copy, retrieved from a recycled computer, from a lost computer, etc.) he won't be able to exploit it.

WINDEV and WEBDEV native access

WINDEV, WEBDEV and WINDEV Mobile are Integrated Development Environments (IDE). Access to HyperFileSQL is "native" in WINDEV and WEBDEV, which means that the access performances (read, write) are optimized. The HyperFileSQL data schemas are also directly and instantly recognized by the WINDEV and WEBDEV environments, and therefore benefit from the automation and wizards of these environments: automatic UI creation, control creation, assisted code entry in the editor... Data binding is supported, visually in the environment and also by programming.

H y p e r F i l e S Q L w w w. w i n d e v. c o m


Automated assistance
In a WINDEV application, end user assistance is automatic in the following error cases: detection of unprotected concurrent accesses duplicates non respect of integrity constraints invalid password disconnection lock. If one of these errors occurs, the application automatically displays a relevant assistance window.

At any time you can handle several contexts and several connections for the same database.

Window and UI generator from the table schemas

The generated UIs take the table's definition into account. For example, if a column is a numeric type, with a maximum length of 8, only data of this type will be allowed in input. You won't be able to enter text or a larger number.

Here, 2 users are trying to modify the same field at the same time! A window automatically comes up and asks for the correct value. No programming is required. 3 examples of windows created with WINDEV

Cursor in WINDEV and WEBDEV

Cursor in WINDEV and WEBDEV Native programming in WINDEV and WEBDEV is highly simplified thanks to a set of advanced automations and wizards. Relationships between tables are automatically detected. The access to a database field is easily defined through a clear and intuitive syntax: table name, column name (customer.name) The code entry wizards are always at your fingertips and help prevent typos and having to look for names.

Performance help, Tuning, Audit

The profiler and dynamic audit tool allow you to analyze the performances of an application, and through this make sure the data accesses are programmed optimally. The tuning lets you optimize queries, check indexes, set up statistics, monitor the server, control the memory, check the CPU use, check the disk space and the connections, etc.

H y p e r F i l e S Q L w w w. w i n d e v. c o m


`Sophisticated, ready-to-use and to be customized controls are available just by drag and drop: formatted edit controls tabs combo box images scroll bars animated graphical buttons On/Off buttons check box tables treeview lists HideShow ActiveX controls spin buttons sliders icon bar splitter status bars RTF progress bar chart carousel ... display controls (static) scrolling lists auto-fill combo box animated images graphical buttons (icons) text buttons timer buttons single column and multi column radio buttons graphical lists treeview table OLE controls click areas controls with fuzzy shadow HTML controls geometrical shapes view lists Web camera loopers toolbox bar codes calendar

Administration: HyperFileSQL Control Center

ternet, such as: Manage the database Manage the data size Stop/start several server instances Visualization of information specific to the server, the database or the tables Uninstall the HyperFileSQL server Display the list of current connections Ability to authorize/forbid connections Send messages to the users Configuration of the location of the databases, logs, activation and location of the logs and activity statistics, Definition of the server connection port, Definition of the port for remote debugging, Account maintenance Manage the transactions in progress, transaction rollback Manage scheduled tasks Perform backups Manage backups Hot tuning: cache size, log activation, etc. Creation, deletion, import of databases. Database explorer Query execution Back up and restore data, Visualization of the tables' structure. Automation of common functions. Monitoring. Manage users and user groups, as well as their rights Manage connected users User disconnection Gathering of precise statistics on the server use: computers, queries, logs, parameters,... Visualization of row locks ...

Hot Administration
A large number of maintenance tasks can be performed live, without having to disconnect the users, and without interfering with the use of their applications, which will keep on reading and writing data during the maintenance: SDD live "auto modif " Live reindexing Live automated performance optimization Live password change Backup.

Modeling a database
Defining a database's schema is done easily through the powerful visual editor provided. A large number of wizards are there to help you. The visual editing of the schema (creation, deletion, modification of the tables, columns, relationships, constraints, indexes, triggers, etc.) enables you to define a database schema without having to write any SQL code. The editor graphically represents the organization of the data and processes.

A tab of the HyperFileSQL Control Center

The HyperFileSQL Control Center is an indispensable administrative tool with an intuitive and user-friendly graphic interface. The HyperFileSQL Control Center can be used to perform a large number of tasks, either from a network computer or from the In-

H y p e r F i l e S Q L w w w. w i n d e v. c o m


A data schema

Assisted relationships (links) definition

The editor knows how to import schemas from databases in HyperFileSQL, SQL Server, OLE DB, and so on formats. An automatic import of existing schemas can be performed. The documentation of the database schema can be printed upon request (hard copy, HTML, PDF, Word, OpenOffice).

The wizard then asks whether it should generate the potential relationship tables if needed, or if it should use existing tables. The wizard then requests the name of the relationships: the schema is defined. The visual schema editor also manages: Reverse analysis from a server Logical and physical modeling The connection editor The schema comparison The schema history The generation of DDL scripts The export of the schema model in the form of a vector image.


Pages from an automatic documentation

How to create a data schema?

Creating a data schema is very easy: a powerful wizard helps you. We simply need to define the structure of the tables that make up the schema; columns are defined or retrieved from a data dictionary. We specify the type of columns, the type of key (index), etc. All the newly created columns are stored in the data dictionary. Then we define the relationships between tables. To link tables, simply draw a link with the mouse! The wizard asks questions in plain English to determine the nature of the relationships. The wizard also asks whether the checking of referential integrity must be automated or not.

The UML class diagram

WINDEV and WEBDEV support the 9 UML models. Notably, the class diagram can be generated automatically from the database schema. 3-tier programming is therefore extremely simplified through an automatic object-relational mapping: classes are automatically generated to implement the business logic specific to the application, as well as the update of the data from the objects to the tables, and conversely.

H y p e r F i l e S Q L w w w. w i n d e v. c o m


Query editor

The creation of queries is done using the SQL language or the WLanguage 5GL Queries can be entered directly or generated by the query editor (Reports & Queries) provided with WINDEV and WEBDEV, and can be freely distributed to the end users of the applications you've created. The query editor also lets you optimize the database's description (schema) by detecting and defining the indexes required for Display all OrderNumber, OrderNumberCustomer, OrderDate, the best runtime performance of the created queries. CustomerNum, PaymentMethod and InvoiceDate The query editor generates the queries both in SQL and in such as InvoiceDate is equal to InvoiceDate natural language so you can easily check that they corresAND ORDERS.Total is greater than or equal to Amount pond to the intended operation. Theres no risk of error. AND HISTORY.AdminAssistant is equal to AdminAssistant The query is also generated in diagram form (animaOR PRODUCT.MinQty is equal to MinQuantity AND PaymentMethod contains PaymentMethod ted graphic). AND ORDERS.Observations contains Observation . The steps for creating a query are simple: choose the columns to include, specify the selection conditions using the wizard, and the query is built using optimized SQL code.
A few clicks are enough to create a query, and to check it in natural language.

The editor also performs a reverse-analysis of existing queries. A query result can be a visualization window, a printed report, or a HyperFileSQL table. A query can use the result of another query as its source.

Reporting tool (Reports & Queries program)

The "Reports & Queries" program is a report editor that you can distribute freely, at no cost and to all your end users, for any application built with WINDEV or WEBDEV. This report editor is natively interfaced with HyperFileSQL, and allows for very easy creation of sophisticated reports using the data stored in the HyperFileSQL databases. The PDF standard is supported, as well as page background, bar codes, labels, and everything you need!

From the report editor, export to Word, Excel, OpenOffice, send an e-mail, and so on, automatically A report created with Reports & Queries

H y p e r F i l e S Q L w w w. w i n d e v. c o m


Data comparison tool: WDHFDiff

The WDHFDIFF tool enables you to compare: the structure of 2 tables the data in 2 tables. This can be very useful in the fine tuning phase.

Monitoring engine

A report can be sent to different targets

Supported bar code formats are: UPCA, UPCE, EAN13, EAN8, EAN128, CODE128, CODE39, CODE93, CODE11, CODE128, Intervaled 2 of 5, CODABAR, CB_MSI, Datamatrix, PDF417,...

RAD: for generating windows and pages

A Web page generated by WEBDEV

The WINDEV, WEBDEV and WINDEV Mobile RAD also generates the windows and pages, as well as the controls, and configures the edit controls based on the information found in the data schema: required control, maximum size, types of accepted data, bound verification, etc.

WDMAP: data viewer

WDMAP lets you view, edit and modify the data in a table. WDMAP is very useful during testing and debugging. WDMAP lets you filter and sort the data, perform instant export (to Word, Excel, OpenOffice, XML, etc).

The monitoring engine (freely distributable with your applications) lets you secure your servers. The engine constantly monitors and immediately detects the suspicious connections to your server. The server warns, by (your choice): sending a configurable e-mail message to the specified addresses (up to 20 addresses) sending a message to a specific application (internal messaging, ...) sending a message to the integrated messaging system control screen (visual warning and/or sound) starting a WLanguage procedure running a third-party program (this program can for instance, send a configurable message via SMS to chosen numbers). Of course, you can choose a combination of these warnings. Among the monitoring parameters that can be specified, you'll find: the frequency: run the test every X, from 2 minutes to 1 day repetition: in case there's no answer from the monitored element, how often to retry and how long before triggering the warning text of the message to send the message's medium (SMS, email, ...).

SIS: Software Infrastructure Supervisor

SIS allows you to compile a list of accesses for all the WINDEV applications and all the WEBDEV sites to all the network resources,

H y p e r F i l e S Q L w w w. w i n d e v. c o m


including the HyperFileSQL databases. SIS enables you to analyze the changes in database accesses over time, to find out which applications and which computers access a database. Precise statistics are available at any time.




The "Select" type SQL queries accept a large number of WLanguage functions as parameters, which allows you to easily refine a selection. The accepted WLanguage functions are:
Abs Age ArcCos ArcSin Asc Charact StringFormat StringCount StringToUTF8 Complete MakeInteger Conversion ColorLightness ColorSaturation DateDifference Today DateTimeLocalToUTC DateSys DateValid DateToDay DateToDayInAlpha DateVersWeekNumber Uncompress Uncrypt DurationToString EmailCheckAddress IntegerToDay IntegerToDayInAlpha IntegerToWeekNumber IsNumeric IsEven Exp ExtractString fLoadText fShortPath fCompare fCopyFile fDate fDateTime fMoveFile fDriveInfo WinOutVPos WinInHPos fExtractPath fFileExist fLongName fDirAttribute fDirAttrib fDirectoryExist fRemoveDir fDirSize fDelete fSize fDiskType Left hDuplicates TimeDifference TimeValid TimeToString HListField HRetrieveField HUnlockRecord iGetIdentifier INIRead InitRandom Ln Log Max Middle NetMACAddress NetIPToMAC NumToString BinaryOR BinaryXOR AnsiVersOem AnsiVersUnicode ArcTan Round StringCompare StringBuild StringToDate StringToDuration CompleteRep Compress Cos CoTan ColorHue Crypt DateIsValid DateTimeDifference DateTimeUTCToLocal DateToString DateToInteger DateToMonthInAlpha DDECR UncompleteDir GetGUID Right IntegerToDate IntegerToTime IntegerToMonthInAlpha DOSEnvironment IsOdd BinaryAND ExeInfo fAttributeReadOnly fLongPath fCompress fCreateLink fCrypt fUncompress fUncrypt WinInInput WinOutHPos WinInVPos fDiskSpace fTime fShortName fCopyDir fMakeDir fTempPath fParentDir fSaveText fSeparator fSizeUncompressed fDiskSize Random HDescribeField TimeIsValid TimeSys TimeToInteger HInfoField HTMLToText HToField ExeInfo INIWrite Reverse ExeRun Now Upper Min Lower NetMACToIP BinaryNOT WeekNumber OemToAnsi BinaryXOR Easter

Simple yet powerful programming

Programming the HyperFileSQL database is both easy and powerful. This programming can be done in SQL and/or in WLanguage 5GL SQL is a universal programming language. Programming with WLanguage, a 5th generation language, allows for advanced and powerful cursor programming. Automation with applications and sites developed in WINDEV and WEBDEV are very strong.

RAD: to generate the code

The code can be generated upon request by WINDEV and WEBDEV using the RAD feature, or using the numerous wizards available in these environments. The generated code can be modified later on. RAD supports the concept of "pattern", which allows you to define the code that will be generated.

List of supported SQL commands

Here is the list of supported SQL functions. We did not detailed each specific SQL function here.

H y p e r F i l e S Q L w w w. w i n d e v. c o m


DecimalPart IntegerPart HiWord Position Root RegistrySearch RegistrySetValue RegistryExist RegistryFirstSubKey RegistryDeleteValue RepeatString NetworkConnect NetworkDirName NetworkUser RGBRed RGBGreen sComputeCrc16 sComputeCrc32 MouseXPos SysColor SysSpace SysInstance SysWindowsVersion SysXRes CommonLength LengthToString HSL UnicodeToAnsi UTF8ToString UUDecode MatchRegularExpression

Phonetic LoWord PositionOccurrence Power RegistryNextKey RegistryCreateKey RegistryListValue RegistryQueryValue RegistryFirstSubKey RegistryValueType Replace NetworkDisconnect NerworkDomainName RGB RGBBlue NoAccent NoSpace Sin MouseXPos SysColorRes SysEnvironment SysNameExe SysDir SysYRes Length Tangent EndApp URLDecode URLEncode UUEncode Val ToString WindowsVersion

when reading it.. HActivateFilter HActivateAutoFilter HActivateTrigger HActiveServerTrigger HAdd HAddGroup HAddLink HAddTask HAddUser HAlias HCancelAlias HCancelDeclaration Activates the filter previously created for the specified table. Activates an automatic filter on linked tables when browsing through an XML file. Re-activates a trigger previously disabled using the HDeactivateTrigger function. Re-activates a server trigger that was previously disabled. Adds the row found in memory to the table. Adds a group of users. Adds an integrity rule between two tables on the server. Adds a scheduled task to the server defined by the connection. Adds a user to a database. Creates a logical alias for a table or cancels all the existing aliases. Cancels an alias that was previously declared using the HAlias function. Deletes a declaration previously performed with HDeclare, HDeclareExternal, or HDescribeFile. Cancels the current search criteria. Cancels a backup in progress. Stops a server. Associates a file with a binary memo (blob) type column. Moves forward several rows from the current position, based on a specified column. Locks a table and restricts access to the table for all other applications. Locks a row and restricts access to the row for all other applications. Changes the search key (column). Changes the connection to a database used for a table. Modifies the search mode of the tables. Modifies the physical name of a table. Modifies a table's path. Modifies the path to a log file. Modifies the location of the subscriber replica's description (RPL file). This function must be used on the subscriber computer. Reads a parameter previously stored in a stored procedure with the HSaveParameter function. Redefines one or more parameters of a connection to a specific table or a set of tables. Opens an analysis in HyperFileSQL Classic format via remote access. Builds the value of a composite key (index) to create a filter or perform a search. On a Unicode platform (Pocket PC for instance), enables you to build the value of a composite key (index) to save it in a HyperFileSQL table. Converts a numeric value into a binary string in order to perform a search using a numeric key (index). Copies the content of the current record (current row) into the current record of another file (the current row of another table). Copies a HyperFileSQL table (file). Creates an empty table using the described indexes. Creates an empty table (if the table doesn't exist) or opens a table (if the table already exists). Creates the description file of a subscriber replica (ReplicaAbonne.RPL file). Creates the description file of a master replica (Replicamaitre.RPL file). Creates a file that can be used to replicate data from the current database (to send by e-mail or CD for example). Creates a HyperFileSQL view. Returns the date and time of the last write operation on a row in a HyperFileSQL table. Unlocks a table (file) previously locked using the HLockFile function. Unlocks a row (a record). Declares a table description (found in another schema) in the

List of WLanguage commands

List of WLanguage commands used to program cursors, or to program all processes if you want. Programming with the WLanguage 5GL is very powerful yet very intuitive. For example, seeking a row and all the associated routines (opening the table, assigning data, etc.) is done in one simple, powerful line of code: HReadSeek(CUSTOMER,NAME,"DOL") The source programs are clear, easy to write and especially easy to maintain; this reduces the chance for errors, and makes the applications you develop more reliable, and faster. Plain English commands make it easier to use; the code is selfcommented! (French available) The hReadSeek command can be understood by any developer, even the brand new ones! You can also program in French: the command becomes hLitRecherche. Other example, creating a table is done in 1 line of code, without any script: hCreation. Following is a non exhaustive list of WLanguage functions (5GL used by WINDEV, WEBDEV and WINDEV Mobile), and summary of its action.

HCancelSeek HCancelBackup HStopServer HLinkMemo HForward HLockFile HLockRecNum HChangeKey HChangeConnection HChangeLocation HChangeName HChangeDir HChangeLogDir HChangeRplDir

HLoadParameter HConnect HConnectRemoteAccess HBuildKeyValue HBuildKeyValueANSI

HConvert HCopyRecord


Automatically initializes: - the memory value of a table's fields (file items) with the value of the window or page's controls. - the value of the WLanguage variables with the value of the window or page's controls.. Automatically initializes: -the memory value of a table's fields with the value of the window or page's controls. -the value of the WLanguage variables with the value of the window or page's controls. Automatically initializes the controls of a window or a page with: - the values of the controls associated with the table's current row) - the values of the associated WLanguage variables. Automatically initializes the controls of a window or a page with : - the values of the controls associated with the table's current row. -the values of the associated WLanguage variables. Adds or deletes the blank spaces to the right of a text control

HCopyFile HCreation HCreationIfNotFound HCreateSubscriberReplica HCreateMasterReplica HCreateMoveableReplica HCreateView HRecordDate HUnlockFile HUnlockRecNum HDeclare





H y p e r F i l e S Q L w w w. w i n d e v. c o m


current project. HDeclareExternal HDisconnectClient HDescribeConnection HDescribeFile HDescribeFullTextIndex HDescribeLink HDescribeItem HDescribeTrigger HDescribeServerTrigger HStartServer HLast HDeactivateFilter HDeactivateAutoFilter Temporarily imports into the current schema, the description of a table based on an existing HyperFileSQL table. Displays a message on the client machines, and disconnects the application. Describes a temporary connection. Describes a temporary table (data file). Describes a full-text index in a table created by programming. Describes a temporary relationship (link) between two tables. Describes a column (item) of a temporary table. Adds or modifies a trigger on HyperFileSQL table. Adds or modifies a server trigger. Starts the server (uses MantaManager). Points to the last row of a table. Temporarily disables a filter on a table (a view or a query). Disables an automatic filter on linked files when browsing through an XML file. This filter was enabled using the HActivateAutoFilter function. Disables a trigger. Disables a HyperFileSQL Client/Server server trigger. Deletes a trigger. Deletes a server trigger. This server trigger will not be available anymore. Deletes a previously created view. Writes a row in a table without updating the corresponding indexes. Lets you find out if the row to which you want to point is outside of the table, the filter, the view or the query. Retrieves the structure and the value of the current row and exports them into an XML format character string. Displays a message on the client machines. Returns the number for the last error set off by the HyperFileSQL engine. Lets you test if a lock error happened. Lets you test if an error on duplicates happened. Returns the state of a row when a modification conflict occurs. Returns detailed information about the last error triggered by the HyperFileSQL engine. Lets you test if an integrity error happened. Returns the value of a control when a modification conflict occurs. Lets you find out if an error due to an invalid password happened on this table. Lets you find out the state of a row. Lets you find out the state of a server. Runs a stored procedure or function. Initializes a query created in the query editor and declares this query to the HyperFileSQL engine. Initializes a query written in SQL language and declares this query to the HyperFileSQL engine. Executes a previously created view. Exports the rows of a file (HyperFileSQL or OLE DB), a view or a query into an XML file. Extracts the contents of a blob (binary memo) type item into a file. Closes either a table (a file) or all the tables (all the files) that are open. Closes the current analysis. Closes a connection to a database. Lets you find out if a table exists. Defines and activates a filter on a file, a view or a query. Defines and activates a "Start with" type filter on a table, a view or a query. The "Start with" type filter lets you select all the rows that start with a pre-defined set of characters. Defines and activates an "included between" type filter on a table, a view or a query. The "included between" type filter lets you select all the rows found between two given values. Defines and activates a filter that looks for the exact value of a HNoModif HInitSubscriber HNoDatabaseAccess HInfoBackup HInfoServer HInfoTask HInfoUser HInfoServerProperty HInfoReplica HInfoGroup HInfoLog HInfoMemo HInfoDatabaseProperty HInfoFileProperty HInfoFileRights HInfoServerRights HInfoFile HSetLog HSetMemo HSetREP HSetReplication HSetServer HManageTask HSetTransaction HSetTrigger HImportHF55 HImportText HImportXML HInfoLock HInfoDatabaseRights HSetCache HSetDuplicates HSetIntegrity HSetDistantAccess HFlush HMergeView HEndNoDatabaseAccess HEndNoModif

string type control. This filter can be used on a table, a view or a query. Reauthorizes access to one or more databases accessible through a connection. Unlocks a table that has been locked in the same program by the HNoModif function. Forces the operating system on the computer where the tables (data files) are located to write the data directly to the disk. Creates a HyperFileSQL view from two previously created views. Temporarily disables remote access for accessing HyperFileSQL Classic tables found locally. Lets you configure cache management for the HyperFileSQL Client/Server engine. Enables or disables the duplicate management for a key. Enables or disables the management of an integrity constraint on a table's relationship. Enables or disables the log management of a logged table. Enables or disables the management of blob (memo) type columns. Enables or disables the management of the .REP file. Temporarily enables or disables replication management. Enables you to modify some server parameters. Enables or disables a scheduled task for a HyperFileSQL Client/Server server. Enables or disables transaction management. Enables or disables trigger management. Imports a Hyper File 5.5 table into a table in HyperFileSQL Classic format. Imports a text file into a table in HyperFileSQL Classic format. Imports an XML file into a table in HyperFileSQL Classic format. Returns some information about the lock of a table, a row or of all the rows of a table. Enables you to find out the rights granted to a user or a group for a database. Enables you to find out the rights granted to a user or a group for a table (data file). Enables you to find out the rights granted to a user or a group for a server. Returns the characteristics of a table found on a HyperFileSQL server. Returns some information about the specified group of users. Returns some information about the server logs. Returns the characteristics of blob (binary memos). Enables you to find out the properties of a database located on a HyperFileSQL server. Enables you to find out the properties of a table located on a HyperFileSQL server. Enables you to find out the properties of a HyperFileSQL server. Returns information about the specified replica. Specifically, this function lets you find out if the database contains data to replicate.. Returns some information on one or more backups performed on a HyperFileSQL Client/Server server. Returns the specified information about a server machine. Returns the characteristics of a scheduled task in an advanced variable of hScheduledTask type. Updates the user management variables with information about the specified user. Initializes the automatic identifier set of a subscriber replica file description (".RPL" file). Disables all accesses to a database, or to databases accessible through a connection. Prevents modifications on a table (for all the programs, including the one that requested the no modification policy). The rows can only be accessed in read mode. Inserts commentaries when creating an operation log. Lets you re-create an empty log. This function enables you for example to reset a log after a save operation or a replication. The content of the existing file is lost.

HDeactivateTrigger HDeactivateServerTrigger HDeleteTrigger HDeleteServerTrigger HDeleteView HWrite HOut HRecordToXML HSendMessageToClient HError HErrorLock HErrorDuplicates HErrorStatusModification HErrorInfo HErrorIntegrity HErrorModification HErrorPassword HState HServerStatus HExecuteProcedure HExecuteQuery HExecuteSQLQuery HExecuteView HExportXML HExtractMemo HClose HCloseAnalysis HConnectionClose HFileExist HFilter HFilterStartsWith


HLogInfo HLogRecreate


H y p e r F i l e S Q L w w w. w i n d e v. c o m


HLogRestart HLogStop HFree HFreePosition HListAnalysis HListDatabase HListKey HListConnection

Restarts the logging of the table. This log operation has been stopped by using the HLogStop function. Stops the logging of the table. The changes performed on the logged file are not recorded anymore. Converts the crossed out rows of a table into deleted rows. Deletes a position saved using the HSavePosition function. Returns the list of WinDev schemas available in a given directory. Lists the Client/Server databases associated with a connection. Returns the list of keys and indexes of a table recognized by the HyperFileSQL engine. Returns the list of connections defined in the application (connections defined in the schema and/or dynamically defined). Returns the list of elements stored on a HyperFileSQL server (set of procedures, stored procedures or queries). Returns the list of tables of the current analysis or of a specific analysis recognized by the HyperFileSQL engine. Returns the list of user groups defined for a connection. Returns the list of full-text indexes in a file (or query, or view) recognized by the HyperFileSQL engine. Returns the list of links (Merise type) found in the current analysis or in a specific analysis. Returns the list of parameters saved from the server's stored procedures. Returns the list of parameters for a query created with the query editor. Returns the list of OLE DB providers installed on the computer. Returns the list of assignments for the tables found in an analysis. Returns the list of columns of a table recognized by the HyperFileSQL engine. Lists the scheduled tasks of a server. Returns the list of triggers applied to one or more HyperFileSQL tables. Lists the various triggers available for a connection or for a file of the connection. Returns the list of users defined for a connection. Lists the users currently connected to one or more files accessed by a Client/Server connection. Reads a row in a table based on a given row number. Points to the last row of a table, reads the row and updates the HyperFileSQL variables. Points to the previous row of a table, reads the row and updates the HyperFileSQL variables. Points to the first row of a table, reads the row and updates the HyperFileSQL variables. Points to the first row of the table whose value for a specific column is greater than or equals to a value sought. Points to the last row of the table whose value for a specific column is lower than or equals to a value sought. Points to the first row of the table whose value for a specific column is greater than or equals to a value sought. Points to the next row of a table, reads the row and updates the HyperFileSQL variables.

in the corresponding group management variables. HModifyDatabaseProperty HModifyFileProperty HModifyServerProperty HModifyTask HModifyUser HNbRec HRecNum HOptimize Modifies the properties of a database located on a HyperFileSQL server. Modifies the properties of a HyperFileSQL file located on a server. Modifies the properties of a HyperFileSQL server. Modifies a scheduled task on the server defined by the connection. Modifies a user's information based on the elements found in the corresponding user management variables. Returns the number of rows (records) of a HyperFileSQL table or view. Returns the row number of the current row in the HyperFileSQL table or view. Optimizes the access to the indexes of HyperFileSQL Classic tables: the indexes are loaded into the system cache. Speeds up the first table read operations and the first query executions. Optimizes selection queries by taking advantage of an application's idle time (times without processes). Optimizes access to HyperFileSQL table indexes. Opens a table. Opens an analysis in HyperFileSQL Classic format. Opens a connection to a database. Sets the password used to create or open a table. Returns the approximate position of the row inside the table. Points to a row based on the approximate position of one of its columns. The row is read. Stores a unique computer number to use it for network transactions. Points to the previous row in the table. The row is not read. Points to the first row of a table. The row is not read. Initializes a query written in SQL and declares this query to the database server in order to optimize the next executions of the query. This query is not executed. This query is executed later by the HExecuteSQLQuery function. Enables you to find out or modify the priority of the calling application. Modifies the priority of a client application. Clears and deletes the temporary directory previously created by the HServerWorkingDir function. Crosses out a table row. Initializes one or all the controls of a table with their default values. Initializes the structure for managing the client computers (HClient structure). Initializes the group management variables with their default values. Initializes the user management variables with their default values. Points to the first row of the table whose value for a specific column is greater than or equals to a value sought. Points to the last row of a table whose value for a specific column is lower than or equals to a value sought. The record is not read. Points to the first row of the table whose value for a specific column is greater than or equals to a value sought. Performs a reconnection to the server for all the interrupted connections. Moves backward several rows inside the table from the current position, based on a specified column. Returns the contents of the current row. Returns the server logs into a table for the period between two given dates. Returns the contents of a column for the current row. Regenerates a table based on its log. Warns if a reindex is in progress on a table and returns the percentage of the reindex that is done. Rebuilds a table's index. Returns the path of a temporary directory on the server. Enables you to restore a backup performed by the HBackup function (or via the HyperFileSQL Control Center).

HListStoredElement HListFile HListGroup HListFullTextIndex HListLink HListParameter HListeQueryParam HListProvider HListREP HListItem HListTask HListTrigger HListServerTrigger HListUser HListConnectedUser HRead HReadLast HReadPrevious HReadFirst HReadSeek HReadSeekLast HReadSeekFirst HReadNext


HOpen HOpenAnalysis HConnectionOpen HPass HGetCurrentPosition HSetPosition HPost HPrevious HFirst HPrepareSQLQuery

HPriority HPriorityClient HClearWorkingDir HCross HReset HResetClient HResetGroup HResetUser HSeek HSeekLast

HSeekFirst HReconnect HBackward HRetrieveRecord HRetrieveLog HRetrieveItem HRegenerateFile HIndexingInProgress HIndex HServerWorkingDir HRestoreBackup

HMigrateLinkedCompositeKey Migrates the value of the linked composite keys originating from a Hyper File 5.5 format table that was migrated to HyperFileSQL Classic. HRefresehSet HRefreshQuery HMode HModify HModifyDatabaseRights HModifyFileRights HModifyServerRights HModifyGroup Creates or updates a set of procedures on a new HyperFileSQL server. Creates or updates a query on a new HyperFileSQL server. Changes the mode and method for locking tables. Modifies in the table the specified row or the row found in memory. Modifies the rights granted to a user or a group of users for a HyperFileSQL Client/Server database. Modifies the rights granted to a user or a group for a HyperFileSQL Client/Server table (data file). Modifies the rights granted to a user or a group on a HyperFileSQL server. Modifies the group's information based on the elements found

H y p e r F i l e S Q L w w w. w i n d e v. c o m


HRestorePosition HRplDeclareLink

Restores the previously stored context of a table. Declares a (1,1) (0,n) type link between two tables. Only the rows of the target table that have a corresponding row in the source table (taking its filter into account) will be replicated during a heterogeneous replication. Defines the WLanguage procedure that will be called for each replication operation for a given table. This procedure is executed by the HCreateMoveableReplica and HSynchronizeReplica functions. Performs the backup of the content of a HyperFileSQL server. Saves a persistent value from a stored procedure. Stores the current context of a table. Enables or disables the security mechanism. Performs various statistical calculations on a table's keys. Returns the date for the last update of the index statistics. These statistics were computed using the HStatCalculate or HIndex functions. Returns the time of the last update of the index statistics. These statistics were computed using the HStatCalculate or HIndex functions. Returns the number of duplicates for a given column. Returns the number of entries for a given column. Returns an estimate increased by the number of entries for a given column within a given value interval. Replaces the logical name of the data directory (specified in the analysis) by a physical name. Points to the next row in the table. The row is not read. Deletes a row from a table. Deletes a database found on a HyperFileSQL server. Deletes a set of stored procedures from a HyperFileSQL server. Deletes HyperFileSQL files (.fic, .ndx and .mmo files if any) from the server. Deletes from the server a group of users associated with a connection. Deletes an integrity rule between two tables on the server. Deletes a parameter previously saved by the HSaveParameter function. Deletes a query from the HyperFileSQL server. Deletes a backup previously done by the HBackup function. Deletes a scheduled task from a HyperFileSQL Client/Server server. Deletes all the records from a data file or a query. Deletes from the server a user associated with a connection. Customizes the display of a message on a user computer and the disconnection of a client computer. Customizes the automatic error management. Synchronizes a master replica and a subscriber replica. If a transaction is in progress, cancels all the operations on the tables in transaction since the beginning of the transaction. Starts a transaction on HyperFileSQL tables, and creates the transaction table. Validates the current transaction. Indicates if a transaction was interrupted (the transaction wasn't validated nor canceled). The characteristics of the interrupted transaction can be known using HyperFileSQL variables. Transforms all the rows "in transaction" into "Normal" rows if these rows do not belong to a transaction currently in progress. If a row from the specified table is considered in transaction, but does not belong to any current transaction, it is automatically freed. Lists the transactions in progress or interrupted on the server of the specified connection. Sorts a view by creating an index based on a view's column. Checks if the current row corresponds to the current filter or the current search. Verifies that the data found in the index file (.NDX file) correctly refers to the data found in the table (.FIC). Sets the comparison mode of the files. Copies a data source (view, query, ) into a physical HyperFileSQL table with the same description. This table is not encrypted or protected by password.

HVersion HToItem HViewToFile

Enables you to find out if the content of a table has been modified. Assigns the specified value to an item in the current row. Saves the modifications performed in a view into the corresponding table.


HBackup HSaveParameter HSavePosition HSecurity HStatCalculate HStatDate

The vocabulary varies depending on the participants. The same concept is often described through different terms. Everyone has his or her "own" standards and habits! Here is a small dictionary of synonyms for the terms used in the field of databases.
PC SOFT vocabulary Analysis (CDM, LDM) Analysis diagram File Item Record Link Lock Key Unique key Key with duplicates Relationship item Window Control Report Visualization table Scheduled task Text memo Binary memo Stored procedures Other vendors Schema, relational model, entity/relationship model Schema diagram Table Column, Field (a field is the Intersection between a column and a row) Row (tuple) Relationship Lock Index Primary key Foreign key our key without uniqueness constraints Foreign key Form Field Report Datagrid, Browse Sequencer Lob or clob Lob or blob UDF (User Defined Function)


HStatNbDuplicates HStatNbRec HStatNbRecRange HSubstDir HNext HDelete HDeleteDatabase HDeleteSet HDeleteFile HDeleteGroup HDeleteLink HDeleteParameter HDeleteQuery HDeleteBackup HDeleteTask HDeleteAll HDeleteUser HOnServerCall HOnError HSynchronizeReplica HTransactionCancel HTransactionStart HTransactionEnd HTransactionInterrupted


HTransactionList HSortView HFound HCheckIndex HCheckStructure HToFile

A database is a set of tables (files) linked through relationships (links). A table (file) is a set of data structured in columns (items), made of rows (records). The intersection between a row and a column is a field (item value). An index is used to speed up searches, queries and access to a table. An index can be defined on a column (key item) or on several columns (composite key). A primary key is a unique key. A foreign key is a key, which may have duplicates, used in connection with a primary key to establish a relationship between two tables.

H y p e r F i l e S Q L w w w. w i n d e v. c o m



Several millions copies of HyperFileSQL are deployed worldwide, in over 100 countries. HyperFileSQL is deployed on very sensitive sites (Web, telecom, enterprises, banks, medical, research, software publishers, administration, government, etc.) that also require high availability with speedy real-time performance and high modification rate.


Here is a summary of the many benefits linked to the adoption of HyperFileSQL: Feature rich Free (complete version, unlimited, with all the tools) Schema description tool Easily installed Easily embedded Easily administered (self-administered, self-optimized) Administration tools provided Clean design Excellent integration with PC SOFT's best sellers: WINDEV, WEBDEV, WINDEV Mobile Encryption of data, tables and indexes Encryption at the different levels: columns, backups, network traffic Ease of use Compatible with Windows, Linux, Mac, Mobile Compatible versions: local, network, embedded, client/server All-in-one solution with WINDEV and WEBDEV: RAD oriented, it manages tables, processes, windows and reports Easy to write stored procedures SubSELECT possible in FROM statement Live and differential backups SQL close to the standard Unicode Efficient support for different character sets and sort orders, granular to the column level Easy replication Automatic reconnection Easy monitoring High availability with clustering Performances Longevity Audit, tuning functions Query optimization Support for Full Text indexing Blob, Lob Integrity constraints Efficient support for different character sets and sort orders, granular to the column level All in English (or all in French) Automatic maintenance of the schema (SDD), on an unlimited number of deployed databases Easy to deploy and to get started with Robustness with high volumes Frugal with resources Access security Automatic load balancing between the various clients
lists are for information purposes only. Do not hesitate to contact us for any additional information or to get a confirmation about a feature. Environmental policy : When PC SOFT prints paper documents, PC SOFT, the paper provider or the printer (which is FSC Forest Stewardship Council and PEFC Program for the Endorsement of Forest Certification Schemes - certified) replant as many trees as used for printing. The FSC label was created by the FSC NGO, which gathers Greenpeace, Friends of the Earth and WWF, among others. For example, printing 100,000 68-page documents on glossy paper consumes 10 trees: PC SOFT immediately has 10 trees replanted. Also, we favor paper pulp made primarily from recycled wood products (such as wood coming from furniture mills) and forest maintenance clearing cuts.

Here are some testimonials: When it comes to performance, HyperFileSQL delivers. It's always instant "The HyperFileSQL database has dazzled users by its incredible query response times" "Concretely, each remote radio accesses a HyperFileSQL Client/Server database through ADSL" "We benefit from the HyperFileSQL database established performance. The result of all our queries is instant" "We have close to 10,000 records that are managed by HyperFileSQL Mobile and access times are instant" "All our sales people and our clients are impressed by the access speed of the database." "The HyperFileSQL database offers a replication mechanism that it sophisticated yet easy to implement" "Of course we deployed the HyperFileSQL database on the interactive kiosks. Its reliability and free unlimited distribution is a major benefit for a fleet of more than 700 kiosks. The 1,000 kiosks mark will be reached soon". You will also find some technical videos and testimonial videos on the www.windev.com site.

HyperFileSQL is provided for free with the WINDEV, WEBDEV and WINDEV Mobile IDE. HyperFileSQL is optimized for working with these environments. The HyperFileSQL database engine can be used freely and at no charge when distributed with applications or sites created using these IDEs, regardless of the number of copies deployed and regardless of the type of application (educational applications, personal applications and business applications).

There are no royalties to pay, no declaration to perform. The deployment is free, unlimited and at no cost. Please see the text of the user license for any additional information. The ODBC driver and the OLE DB provider can be distributed at no cost with applications built using WINDEV, WEBDEV, or WINDEV Mobile. The tools mentioned in this document are

provided with the product. All trademarks are registered trademarks of their respective owners. Some functions may not be available right away when the version is shipping, but will be offered later as downloads. WINDEV, WEBDEV and WINDEV Mobile are professional software. Despite the care taken in creating this document, it is not contractual. Screen shots and

H y p e r F i l e S Q L w w w. w i n d e v. c o m


HyperFileSQL is your data's best ally! You too, like millions of users the world over, take advantage of the security offered by HyperFileSQL.


SQL RDBMS Windows, Linux, Mac Local Mobile Embedded Client/Server Cluster High capacity Any type of data Unicode Index, multi-column index, keys Referential integrity Full text Stored procedures Triggers Referential integrity Logging Transactions Data compression Frame compression Automatic row lock Automatic reconnection Sequencer Replication SDD Right management SQL injection impossible Encryption OLE DB Provider ODBC driver Control Center Hot Administration Backups Database modeling Query generator Reporting Data viewer Monitoring engine Native link with WINDEV, WEBDEV and WINDEV Mobile Free deployment*

Windows, Linux, Mac
Client/Server, Single computer, Mobile, Embedded