123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- using System;
- using System.Runtime.InteropServices;
- using System.Runtime.CompilerServices;
- using System.Reflection;
- using System.Windows.Forms;
- using FastReport.Utils;
- namespace FastReport.Data.ConnectionEditors
- {
- internal partial class OleDbConnectionEditor : ConnectionEditorBase
- {
- // imported from MS OLE DB Service Component 1.0 Type library
- [Guid("00000550-0000-0010-8000-00AA006D2EA4")]
- [ComImport]
- [TypeLibType((short)4160)]
- [DefaultMember("ConnectionString")]
- [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
- internal interface _Connection
- {
- [DispId(5)]
- void Close();
- object Execute([MarshalAs(UnmanagedType.BStr)] string CommandText, [Out] out object RecordsAffected, int Options);
- [DispId(7)]
- int BeginTrans();
- [DispId(8)]
- void CommitTrans();
- [DispId(9)]
- void RollbackTrans();
- [DispId(10)]
- void Open([MarshalAs(UnmanagedType.BStr)] string ConnectionString, [MarshalAs(UnmanagedType.BStr)] string UserID, [MarshalAs(UnmanagedType.BStr)] string Password, int Options);
- [DispId(19)]
- object OpenSchema(object Schema, object Restrictions, object SchemaID);
- [DispId(21)]
- void Cancel();
- int Attributes { [DispId(14)] get; [DispId(14)] set; }
- int CommandTimeout { [DispId(2)] get; [DispId(2)] set; }
- string ConnectionString { [DispId(0)][return: MarshalAs(UnmanagedType.BStr)] get; [DispId(0)] set; }
- int ConnectionTimeout { [DispId(3)] get; [DispId(3)] set; }
- object CursorLocation { [DispId(15)] get; [DispId(15)] set; }
- string DefaultDatabase { [DispId(12)][return: MarshalAs(UnmanagedType.BStr)] get; [DispId(12)] set; }
- object Errors { [DispId(11)] get; }
- object IsolationLevel { [DispId(13)] get; [DispId(13)] set; }
- object Mode { [DispId(16)] get; [DispId(16)] set; }
- object Properties { [DispId(500)] get; }
- string Provider { [DispId(17)][return: MarshalAs(UnmanagedType.BStr)] get; [DispId(17)] set; }
- int State { [DispId(18)] get; }
- string Version { [DispId(4)][return: MarshalAs(UnmanagedType.BStr)] get; }
- }
- [Guid("00000514-0000-0010-8000-00AA006D2EA4")]
- [ComImport]
- [TypeLibType((short)6)]
- [ClassInterface(ClassInterfaceType.None)]
- [ComSourceInterfaces("ConnectionEvents")]
- internal class ConnectionClass : _Connection
- {
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(7)]
- public virtual extern int BeginTrans();
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x15)]
- public virtual extern void Cancel();
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(5)]
- public virtual extern void Close();
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(8)]
- public virtual extern void CommitTrans();
- [return: MarshalAs(UnmanagedType.Interface)]
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(6)]
- public virtual extern object Execute([In, MarshalAs(UnmanagedType.BStr)] string CommandText, [Optional, MarshalAs(UnmanagedType.Struct)] out object RecordsAffected, [In, Optional, DefaultParameterValue(-1)] int Options);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(10)]
- public virtual extern void Open([In, Optional, DefaultParameterValue(""), MarshalAs(UnmanagedType.BStr)] string ConnectionString, [In, Optional, DefaultParameterValue(""), MarshalAs(UnmanagedType.BStr)] string UserID, [In, Optional, DefaultParameterValue(""), MarshalAs(UnmanagedType.BStr)] string Password, [In, Optional, DefaultParameterValue(-1)] int Options);
- [return: MarshalAs(UnmanagedType.Interface)]
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x13)]
- public virtual extern object OpenSchema([In] object Schema, [In, Optional, MarshalAs(UnmanagedType.Struct)] object Restrictions, [In, Optional, MarshalAs(UnmanagedType.Struct)] object SchemaID);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(9)]
- public virtual extern void RollbackTrans();
- [DispId(14)]
- public virtual extern int Attributes { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(14)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(14)] set; }
- [DispId(2)]
- public virtual extern int CommandTimeout { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(2)] set; }
- [DispId(0)]
- public virtual extern string ConnectionString { [return: MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] get; [param: In, MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0)] set; }
- [DispId(3)]
- public virtual extern int ConnectionTimeout { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(3)] set; }
- [DispId(15)]
- public virtual extern object CursorLocation { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(15)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(15)] set; }
- [DispId(12)]
- public virtual extern string DefaultDatabase { [return: MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(12)] get; [param: In, MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(12)] set; }
- [DispId(11)]
- public virtual extern object Errors { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(11)] get; }
- [DispId(13)]
- public virtual extern object IsolationLevel { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(13)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(13)] set; }
- [DispId(0x10)]
- public virtual extern object Mode { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x10)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x10)] set; }
- [DispId(500)]
- public virtual extern object Properties { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(500)] get; }
- [DispId(0x11)]
- public virtual extern string Provider { [return: MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x11)] get; [param: In, MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x11)] set; }
- [DispId(0x12)]
- public virtual extern int State { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x12)] get; }
- [DispId(4)]
- public virtual extern string Version { [return: MarshalAs(UnmanagedType.BStr)][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(4)] get; }
- }
- [ComImport, TypeLibType((short)0x1040), Guid("2206CCB2-19C1-11D1-89E0-00C04FD7A829")]
- private interface IDataSourceLocator
- {
- [DispId(0x60020000)]
- int hWnd { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] set; }
- [return: MarshalAs(UnmanagedType.IDispatch)]
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
- object PromptNew();
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
- bool PromptEdit([In, Out, MarshalAs(UnmanagedType.IDispatch)] ref object ppADOConnection);
- }
- [ComImport, TypeLibType((short)2), ClassInterface((short)0), Guid("2206CDB2-19C1-11D1-89E0-00C04FD7A829"), ComConversionLoss]
- private class DataLinksClass : IDataSourceLocator
- {
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020003)]
- public virtual extern bool PromptEdit([In, Out, MarshalAs(UnmanagedType.IDispatch)] ref object ppADOConnection);
- [return: MarshalAs(UnmanagedType.IDispatch)]
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020002)]
- public virtual extern object PromptNew();
- [DispId(0x60020000)]
- public virtual extern int hWnd { [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] get; [param: In][MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime), DispId(0x60020000)] set; }
- }
- private string GetConnectionString(string connectionString)
- {
- DataLinksClass dataLinks = new DataLinksClass();
- _Connection connection = null;
- if (String.IsNullOrEmpty(connectionString))
- {
- connection = dataLinks.PromptNew() as _Connection;
- if (connection == null)
- return "";
- return connection.ConnectionString;
- }
- connection = new ConnectionClass();
- connection.ConnectionString = connectionString;
- object objConnection = connection;
- if (dataLinks.PromptEdit(ref objConnection))
- return connection.ConnectionString;
- return connectionString;
- }
- private void Localize()
- {
- MyRes res = new MyRes("ConnectionEditors,OleDb");
- gbConnection.Text = res.Get("ConnectionString");
- btnBuild.Text = res.Get("Build");
- }
- private void btnBuild_Click(object sender, EventArgs e)
- {
- tbConnection.Text = GetConnectionString(tbConnection.Text);
- }
- protected override string GetConnectionString()
- {
- return tbConnection.Text;
- }
- protected override void SetConnectionString(string value)
- {
- tbConnection.Text = value;
- }
- /*public override void UpdateLayout()
- {
- tbConnection.Height = gbConnection.Height - tbConnection.Top - tbConnection.Left;
- }*/
- public OleDbConnectionEditor()
- {
- InitializeComponent();
- Localize();
- }
- }
- }
|