DBGETPROP( ) Function
Retrieves the value of a property for the current database or for fields, named connections, tables, or views in the current database.
DBGETPROP(cName, cType, cProperty)
Parameters
cName
Specifies the name of the current open database or the field, named connection, table, or view in the current open database for which DBGETPROP( ) returns information.To return information about a field in a table or a view, preface the name of the field with the name of the table or view containing the field. For example, to return information about the
custid
field in thecustomer
table, specify the following for cName:customer.custid
cType
Specifies whether cName is the current database, or a field, named connection, table, or view in the current database. The following table lists the values you can specify for cType:cType Description CONNECTION cName is a named connection in the current database. DATABASE cName is the current database. FIELD cName is a field in the current database. TABLE cName is a table in the current database. VIEW cName is a view in the current database. cProperty
Specifies the name of the property for which DBGETPROP( ) returns information.The following tables list the values you can specify for cProperty, the return value types, and descriptions of each property. Each description includes the read and write privileges for each property. If a property is read-only, its value cannot be changed with DBSETPROP( ). For more information about changing property values, see DBSETPROP( ).
Connection properties
cProperty Type Description Asynchronous L The connection mode. (Default) False (.F.) specifies a synchronous connection. True (.T.) specifies an asynchronous connection. Read/write.
BatchMode L The batch-processing mode. (Default) True (.T.) specifies the connection that operates in batch mode. Read/write.
Comment C The text of the connection comment. Read/write.
ConnectString C The login connection string. Read/write.
ConnectTimeout N The connection timeout interval in seconds. The default is 0 (wait indefinitely). Read/write.
Database C The name of the server database specified with the DATABASE clause in the CREATE CONNECTION command or in the Connection Designer. Read/write.
DataSource C The name of the data source as defined in the Odbc.ini file. Read/write.
DispLogin N Contains a numeric value that determines when the ODBC Login dialog box is displayed. DispLogin may assume the following values: 1 or DB_PROMPTCOMPLETE (from Foxpro.h). 1 is the default.
2 or DB_PROMPTALWAYS (from Foxpro.h).
3 or DB_PROMPTNEVER (from Foxpro.h).
If 1 or DB_PROMPTCOMPLETE is specified, Microsoft Visual FoxPro displays the ODBC Login dialog box only if any required information is missing.
If 2 or DB_PROMPTALWAYS is specified, the ODBC Login dialog box is always displayed, allowing you to change settings before connecting.
If 3 or DB_PROMPTNEVER is specified, the ODBC Login dialog box is not displayed and Visual FoxPro generates an error if the required login information is not available.
Read/write.
DispWarnings L Contains a logical value that determines if non-trappable warnings from the remote table, ODBC, or Visual FoxPro are displayed. (Default) True (.T.) specifies that non-trappable errors are displayed. Read/write.
IdleTimeout N The idle timeout interval in seconds. Active connections are deactivated after the specified time interval. The default value is 0 (wait indefinitely). Read/write.
PacketSize N The size of the network packet used by the connection. Adjusting this value can improve performance. The default value is 4096 bytes (4K). Read/write
PassWord C The connection password. Read/write.
QueryTimeout N The query timeout interval in seconds. The default value is 0 (wait indefinitely). Read/write.
Transactions N Contains a numeric value that determines how the connection manages transactions on the remote table. Transactions may assume the following values: 1 or DB_TRANSAUTO (from Foxpro.h). 1 is the default. Transaction processing for the remote table is handled automatically.
2 or DB_TRANSMANUAL (from Foxpro.h). Transaction processing is handled manually through SQLCOMMIT( ) and SQLROLLBACK( ).
Read/write.
UserId C The user identification. Read/write.
WaitTime N The amount of time in milliseconds that elapses before Visual FoxPro checks whether the SQL statement has completed executing. The default is 100 milliseconds. Read/write.
Database properties
cProperty Type Description Comment C The text of the database comment. Read/write.
DBCEventFileName C Relative path and filename of external program file containing DBC Events code. DBCEvents L Enabled state of DBC Events.
Set to .T. to enable.Version N The database version number. Read-only.
Field properties for tables
cProperty Type Description Caption C The field caption. If an equal sign (=) precedes the value of this property, Visual FoxPro evaluates the value as an expression. Otherwise, it is treated as a string literal. Read/write.
Comment C The text of the field comment. Read/write.
DefaultValue C The field default value. Read-only.
DisplayClass C Name of the class used for field mapping. Read/write.
DisplayClassLibrary C Path to the class library specified with the DisplayClass property. Read/write.
Format C The field display format. See the Format Property for a list of format settings. Read/write.
InputMask C The field input format. See the InputMask Property for a list of input mask settings. Read/write.
RuleExpression C The field rule expression. Read-only.
RuleText C The field rule error text. Read-only.
Field properties for views
cProperty Type Description Caption C The field caption. If an equal sign (=) precedes the value of this property, Visual FoxPro evaluates the value as an expression. Otherwise, it is treated as a string literal. Read/write.
Comment C The text of the field comment. Read/write.
DataType C The data type for a field in a view. Initially set to the data type for the field in the data source. To specify a different data type for a field with DBSETPROP( ), use the syntax for creating fields in CREATE TABLE – SQL.
For example, to change the data type of an integer field named iCost in a table named Mytable to numeric type with width 4 and 2 decimal places, use
DBSETPROP('mytable.icost', 'field', ; 'DataType', 'N(4,2)')
You can also include the NOCPTRANS clause to prevent translation of character and memo fields to a different code page.
Read/write for remote views.
DisplayClass C Name of the class used for field mapping. Read/write.
DisplayClassLibrary C Path to the class library specified with the DisplayClass property. Read/write.
DefaultValue C The field default value. Read/write.
KeyField L Contains true (.T.) if the field is specified in an index key expression; otherwise, contains false (.F.). Read/write.
RuleExpression C The field rule expression. Read/write.
RuleText C The field rule error text. Read/write.
Updatable L Contains true (.T.) if the field can be updated; otherwise, contains false (.F.). Read/write.
UpdateName C The name of the field used when data in the field is updated to the remote table. By default, the remote table field name. Read/write.
Table properties
cProperty Type Description Comment C The text of the table comment. Read/write.
DeleteTrigger C The Delete trigger expression. Read-only.
InsertTrigger C The Insert trigger expression. Read-only.
Path C The relative path with respect to the DBC to the table including the name of the file. Read-only.
PrimaryKey C The tag name of the primary key. Read-only.
RuleExpression C The row rule expression. Read-only.
RuleText C The row rule error text. Read-only.
UpdateTrigger C The Update trigger expression. Read-only.
View properties
cProperty Type Description AllowSimultaneousFetch L Applies when using remote views, a shared connection, and to cursors created using ODBC. AllowSimultaneousFetch contains True (.T.) when similarly configured cursors sharing the connection are permitted to fetch rows simultaneously.
Otherwise, AllowSimultaneousFetch contains False (.F.) when fetching rows simultaneously is not permitted.
BatchUpdateCount N The number of update statements sent to the back end for views. 1 is the default. Adjusting this value can greatly increase update performance. Read/write.
Comment C The text of the view comment. Read/write.
CompareMemo L Contains true (.T.) (default) if memo fields (of type Memo, General, or Picture, or, for remote views, type Timestamp) are included in the WHERE clause for updates; otherwise, contains false (.F.). Read/write.
ConnectName C The named connection used when the view is opened. Read-only.
FetchAsNeeded L If True (.T.), data is fetched only when needed, such as when record pointer moves to a row that has not been fetched. If False (.F.), additional data is fetched during idle time. (Default)
Note FetchAsNeeded does not apply when progressive fetching is disabled (FetchSize is -1).
Read/write.
FetchMemo L Contains true (.T.) (default) if memo and general fields are fetched with the view results; otherwise, contains false (.F.). Read/write.
FetchSize N Contains the number of records fetched at a time from the remote tables. The default is 100 records. Setting FetchSize to –1 retrieves the complete result set, limited by the MaxRecords setting. Note Progressive fetching holds the connection until all rows are retrieved. Use caution coding with FetchSize if ShareConnection is True (.T.).
Read/write.
MaxRecords N The maximum number of records fetched when result sets are returned. The default is – 1 (all rows are returned). A value of 0 specifies that the view is executed but no results are fetched. Read/write.
Offline L Contains true (.T.) if the view is an offline view. Read-only.
ParameterList C The WHERE clause parameters. The format for the parameters is ''ParameterName1, 'Type1'; ParameterName2, 'Type2'; ...'' where Type is a one of the following characters specifying the parameter type: C – Character
D – Date
T – DateTime
N – Numeric
F – Floating
B – Double
I – Integer
Y – Currency
L - LogicalFor example, ''MyParam1, 'C' '' specifies a single character type parameter named MyParam1.
For more information about creating parameterized views, see Creating Views.
Read/write.
Prepared L Contains true (.T.) if SQL statements are prepared for subsequent REQUERY( ) function calls. REQUERY( ) is used to retrieve data again for a SQL view. See SQLPREPARE( ) for additional information about preparing SQL statements.The default is false (.F.). Read/write.
RuleExpression C The row rule expression. Read/write.
RuleText C The rule text expression displayed when an error occurs when data is edited in a Browse or Edit window. Read/write.
SendUpdates L Contains true (.T.) if a SQL update query is sent to update remote tables; otherwise, contains false (.F.) (default). Read/write.
ShareConnection L Contains true (.T.) if the view can share its connection handle with other connections; otherwise, contains false (.F.). Read/write.
SourceType N The view source. SourceType may assume the following values:
1 - The view uses local tables.2 - The view uses remote tables.
Read-only.
SQL C The SQL statement executed when the view is opened. Read-only.
Tables C A comma-delimited list of the names of the tables. Read/write.
UpdateType N The update type. Valid values are:
1 or DB_UPDATE (from Foxpro.h). The old data is updated with the new data (default).2 or DB_DELETEINSERT (from Foxpro.h). The old data is deleted and the new data is inserted.
Read/write.
UseMemoSize N The minimum size (in bytes) for which result columns are returned in memo fields. For example, if the width of a column result is greater than the value of UseMemoSize, the column result is stored in a memo field. UseMemoSize may vary from 1 to 255; the default value is 255. Read/write.
WhereType N The WHERE clause for updates to remote tables. WhereType may assume the following values:
1 or DB_KEY (from Foxpro.h). The WHERE clause used to update remote tables consists of only the primary fields specified with the KeyFieldList property.2 or DB_KEYANDUPDATABLE (from Foxpro.h). The WHERE clause used to update remote tables consists of the primary fields specified with the KeyFieldList property and any updatable fields.
3 or DB_KEYANDMODIFIED (from Foxpro.h) (default). The WHERE clause used to update remote tables consists of the primary fields specified with the KeyFieldList property and any other fields that are modified.
4 or DB_KEYANDTIMESTAMP (from Foxpro.h). The WHERE clause used to update remote tables consists of the primary fields specified with the KeyFieldList property and a comparison of the time stamps.
For more information about the WhereType property, see Creating Views.
Read/write.
Return Values
Character, Numeric, or Logical data type. DBGETPROP( ) returns the value for the specified property.
Remarks
A database must be opened before you can get its properties or those of its connections, tables, views, or fields. You do not need to execute the USE command to open a table or view before getting its properties.
For more details about the properties you can get for connections, databases, fields, tables, and views, refer to the topics listed in the following table.
For details about | Refer to this topic | In this section |
---|---|---|
Database properties | Viewing and Setting Database Properties | Working with Tables |
Connections | Accessing Remote Data | Creating Views |
Views | Creating Views | |
Triggers | Trigger Usage | Working with Tables |
Captions | Controlling Display of a Field | Working with Tables |
Default values | Creating Default Field Values | Working with Tables |
Creating Default Values for View Fields | Creating Views | |
Comments | "Adding Comments to Fields" under Choosing Data Types | Working with Tables |
Viewing and Setting Database Properties | Creating Databases | |
Primary key | Controlling Duplicate Values | Working with Tables |
Rules | Enforcing Business Rules | Working with Tables |
Setting or Changing Field-Level or Table Rules | Working with Tables | |
Creating Rules on View Fields and Rows | Creating Views |
Example
The following example displays the name of the primary key field for the customer
table. It then displays the field comments for the cust_id
field in the customer
table. If there are no comments for the field, a message is displayed indicating there are no field comments. To add comments, see the example for DBSETPROP( ).
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME(2) + 'Data\testdata')
* Displays the primary key field
cResults = DBGETPROP("customer", "Table", "PrimaryKey")
=MESSAGEBOX(cResults) && Displays 'cust_id'
* Displays comments for the field 'cust_id'
cResults = DBGETPROP("customer.cust_id", "Field", "Comment")
IF LEN(ALLTRIM(cResults)) = 0
=MESSAGEBOX("No Comment for this field." + CHR(13) + ;
CHR (13) + "Use DBSETPROP( ) to add comments.")
ELSE
=MESSAGEBOX("Cust_id field comments: " + cRESULTS)
ENDIF
See Also
ADD TABLE | CREATE CONNECTION | CREATE DATABASE | CREATE SQL VIEW | CURSORGETPROP( ) | CURSORSETPROP( ) | DBSETPROP( ) | DISPLAY DATABASE | LIST DATABASE | RENAME CONNECTION | SQLCOMMIT( ) | SQLROLLBACK( )