Subject RE: [firebird-support] Fastest way to check if Firebird table exists
Author RB Smissaert
I don’t need to consider views, and looking at rdb$relations doesn’t allow
me to differentiate

between a table with or without records. Still have a feeling though that
there is a better way.



RBS





_____

From: firebird-support@yahoogroups.com
[mailto:firebird-support@yahoogroups.com] On Behalf Of Teträm Corp
Sent: 11 May 2009 23:00
To: firebird-support@yahoogroups.com
Subject: Re: [firebird-support] Fastest way to check if Firebird table
exists








Hi,

I think a better way is to use

select 1 from rdb$relations where rdb$relation_name = :strTable

and may be add "and rdb$relation_blr is null" (or kind of) to exclude views

Thierry

RB Smissaert a écrit :
>
>
> Need a fast function in VB that checks if a Firebird (1.5) table
> exists and
> came up with:
>
> Public Function FirebirdTableExists(strTable As String) As Long
>
> Dim strSQL As String
> Dim rs As ADODB.Recordset
>
> 'will give 1 if table exists and has records
> 'will give 0 if table exists, but has no records
> 'will give -1 if table doesn't exist
> '-----------------------------------------------
> On Error GoTo ERROROUT
>
> strSQL = "SELECT FIRST 1 RDB$DB_KEY FROM " & strTable
>
> Set rs = New ADODB.Recordset
> rs.Open strSQL, oADOConn, adOpenForwardOnly, adLockReadOnly, adCmdText
>
> If Not rs.EOF Then
> FirebirdTableExists = 1
> End If
>
> Exit Function
> ERROROUT:
>
> FirebirdTableExists = -1
>
> End Function
>
> Anything wrong with this or any suggestions for something better?
>
> RBS
>
>





[Non-text portions of this message have been removed]