| **Navigation:**  [[introduction.htm|Language Reference]] > [[chapter runtime properties.htm|App C - PROP: Runtime Properties]] > Complete Property List >PROP:SQLRowSet | [[propsql.htm|{{btn_prev_n.gif|Previous page}}]][[chapter runtime properties.htm|{{btn_home_n.gif|Return to chapter overview}}]][[prop state3value.htm|{{btn_next_n.gif|Next page}}]] | | || You can use property syntax (PROP:SQLRowSet) to execute SQL statements that return result sets in your program code by using **PROP:SQLRowSet** and naming the FILE or  backend VIEW defined in the Clarion Data Dictionary as the target within your program. This is only valid when using an SQL file driver (such as the ODBC, MS-SQL, or Oracle drivers). You can send any SQL statement supported by the SQL server that returns a result set. After issuing the SQL statement, you use NEXT(file) to retrieve the result set one row at a time, into the file's record buffer. The FILE declaration receiving the result set must have at least as many fields as the SQL SELECT statement returns. If the Clarion ERRORCODE procedure returns 90, the FILEERRORCODE() and FILEERROR() functions return any error code and error message set by the back-end SQL server. Example: MySQLiteFile{PROP:SQLRowSet} = 'PRAGMA table_list' ! get a list of tables in file LOOP NEXT(MySQLiteFile) ... END MySQLiteFile{PROP:SQLRowSet} = 'WITH q AS (SELECT COUNT(*) FROM f) SELECT * FROM q' NEXT(MySQLiteFile) The names used in the SQL statement are the SQL table names, not necessarily the same as the Clarion names you defined in the Dictionary. See Also:[[using embedded sql.htm|Using Embedded SQL]], [[prop sql 2.htm|PROP:SQL]], [[fileerrorcode return file driver error code number .htm|FILEERRORCODE]], [[fileerror return file driver error message .htm|FILEERROR]]