Choose your database:
AnySQL
MySQL
MS SQL Server
PostgreSQL
SQLite
Firebird
Oracle
SQL Anywhere
DB2
MaxDB

Subscribe to our news:
Partners

Firebird PHP Generator online Help

Prev Return to chapter overview Next

Custom SQL queries

To use a SELECT query as a page data source, click the Create Query button or select the corresponding popup menu item, specify the query name and text, and click OK.

 

Rules for creating queries used by PHP Generator

All queries must satisfy the simple requirement: the following query must be correct.

 

select * from

(

  QUERY_TEXT_YOU_ENTERED

) an_alias

 

This happens because the software uses similar queries for internal needs. In case such SQL expression is not valid, the wizard marks the query as invalid and displays its name in red.

 

To meet this requirement, make sure that all the columns in the result dataset have unique aliases. For example, the following query works fine itself, but returns a dataset with two columns named id:

 

SELECT 

         table1.*, 

         table2.* 

FROM table1, table2 

WHERE table1.id = table2.id;

 

This is the reason the wizard marks this query as invalid. To solve the problem, provide these columns with unique aliases:

 

SELECT 

         table1.id as table1_id, 

         table2.id as table2_id

FROM table1, table2 

WHERE table1.id = table2.id;

 

Creating updatable datasets (For Professional Edition Only)

To get an updatable dataset based on an SQL query, you have to provide up to three SQL queries: UPDATE, INSERT, and DELETE to be able to modify, add and remove records accordingly. The first query provides an UPDATE statement for modifying existing records; the second query provides an INSERT statement to add a new record to the tables; and the third one provides a DELETE statement to remove the records. Each of these queries can contain several parameterized statements that use parameters like :field_name.

 

Example

Assume that we have the following SELECT statement:

 

SELECT 

   id, 

   first_name, 

   last_name

FROM customer

WHERE last_name LIKE 'A%'

 

To create an updatable dataset based on this query, INSERT, UPDATE and DELETE statements can be specified as follows:

 

INSERT INTO 

   customer 

VALUES (:id, :first_name, :last_name);

 

UPDATE customer 

SET    id = :id, 

   first_name = :first_name, 

   last_name = :last_name

WHERE id = :OLD_id;

 

DELETE FROM customer 

WHERE id = :id;

 



Prev Return to chapter overview Next