Guten Tag psylencedave,


> I have the following code to create a database in C#, but the application 
> doesn't release the database file when the connection is closed. What am I 
> doing wrong?

> public class FirebirdDatabase
> {
>     FbConnection connection;

>     public void CreateDatabase()
>     {
>         try
>         {
>             FbConnectionStringBuilder cs = new FbConnectionStringBuilder();
>             cs.Database = "C:\TestDb.GDB";
>             cs.UserID = "SYSDBA";
>             cs.Password = "masterkey";

>             FbConnection.CreateDatabase(cs.ToString(), true);
>             this.connection = new FbConnection(cs.ToString());
>             this.connection.Open();
>             this.connection.Close();    //doesn't release DB file
>             this.connection.Dispose();  //doesn't release DB file
>             File.Delete(cs.Database);   //fails here!
>         }
>         catch
>         {
>         }
>     }
> }


> Full error message:

> Code:
> The process cannot access the file 'C:\TestDb.GDB' because it is being used 
> by another process



probably the file remains locked due to some internal housekeeping of the 
Database Engine going on
after disconection ( Sweep , garbage collection)
wait a while before trying to delete the file



-- 
Mit freundlichen Grüssen
Hannes Streicher                            mailto:[email protected]

Reply via email to