I was recently asked how to connect to InterBase from Visual Studio, and while its not something I have done before, luckily I know a man who has. – Thanks to Gabe Goldfield for checking the example below with InterBase XE7 and Visual Studio 2013 Ultimate.
Connecting to InterBase from Visual Studio
InterBase currently supports an ADO.Net driver that works with InterBase XE, XE3 and XE7 providing both 32bit and 64bit support. Full details here.
Prerequisites
- You will need to have .Net 2.0 SDK with update.
- Microsoft Visual Studio 2005 or above.
- InterBase XE or above.
Installation Instructions
- Run the InterBase ADO.Net 2.0 installer.
Usage Instructions
- Start Visual Studio 2005/2008
- File new C# Windows application
- Project – Add Reference and add the AdoDbxClient.dll, DbxCommonDriver, DBXInterBaseDriver to your project.
- Add a DataGridView component to your Windows Form
- The sample code below fills a DataGridView component with the contents of the employee table of the employee.gdb sample InterBase database:
Code Example
>>> using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Borland.Data; using Borland.Data.Units; using System.Data.SqlClient; using System.Data.Common; namespace IBXEApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); ReadData(getConnection()); } public DbConnection getConnection() { // DbProviderFactory factory = DbProviderFactories.GetFactory // ("Borland.Data.AdoDbxClient"); DbConnection c = new TAdoDbxInterBaseConnection(); //DbConnection c = factory.CreateConnection(); c.ConnectionString = "Database=C:\\Embarcadero\\InterBase\\examples\\database\\employee.gdb;User_Name=sysdba;Password=masterkey"; return c; } public void ReadData(DbConnection conn) { string sql = "select * from employee"; DbCommand cmd = conn.CreateCommand(); cmd.CommandText = sql; conn.Open(); DbDataReader myreader = cmd.ExecuteReader(); dataGridView1.DataSource = myreader; DataSet ds = new DataSet(); DataTable dt = new DataTable("employee"); ds.Tables.Add(dt); ds.Load(myreader, LoadOption.PreserveChanges, ds.Tables[0]); dataGridView1.DataSource = ds.Tables[0]; myreader.Close(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } } } <<<
anyway I can return the auto generated ID from an insert statement using the driver ?
Best practice is to use a Generator before you post to get the ID. Watch YouTube Video on InterBase Generators