系统本地ACCESS数据库ODBC配置手工建立
- 格式:doc
- 大小:121.00 KB
- 文档页数:3
Microsoft Office Access 2003的ODBC数据源配置1. 创建数据源单击[脚本]-[应用]菜单,出现[图1-1]所示“应用程序脚本”窗口,在“进入程序”选项卡中使用函数SQL Connect(ConnectID ,SourceDesc)可实现实时数据库与关系型数据库Access 2003的连接。
SQLConnect (Int ConnectID, String SourceDesc) As Bool说明:与指定的数据库建立连接。
如果指定的远程数据库不存在,该函数可能要等待几十秒。
参数:ConnectID:数据源标识,为返回值,该值将用于其它后续SQL函数。
SourceDesc:数据源描述。
数据源描述可以通过脚本中工具条按钮“SQL连接“按钮得到。
返回值:0为失败,1为成功。
示例:SQLConnect(ConnectID,"DSN=Access;DBQ=D:\table1.mdb;DefaultDir=D:;Driv erId=25;FIL=MSAccess;MaxBufferSize=2048;PageTimeout=5;UID=admin;");//与Access数据库文件table1.mdb建立连接注意:参数必须为变量,返回函数执行后的数据。
数据源使用完后,使用SQLDisconnect来断开连接。
在此对SourceDesc数据源的连接过程以新建连接的应用为例做详细说明:图1-1在“应用程序脚本”窗口的工具栏中单击“数据源选择”图标,弹出如<图1-2>所示的“选择数据源”窗口,该窗口提供“文件数据源”和“机器数据源”两个选项卡,前者为文件数据源,仅针对指定的数据库文件创建数据源,如果有多个Access数据库文件需要连接,就需要创建相应数量的文件数据源;后一种为机器数据源,它可以在使用的计算机上创建一个面向所有Access数据库的数据源。
ODBC常见数据源配置整理⽬录1. 简介⽤golang做odbc驱动开发的任务并不多,隔段时间可能会来⼀个。
每次开发会忘记如何配置数据源和对应的数据源链接参数配置。
这⾥做⼀个整理。
1.1 ODBC和JDBCODBC(Open Database Connectivity)是⼀组对数据库访问的标准API,其最⼤的优点是以统⼀的⽅式处理所有的数据库。
JDBC(Java Database Connectivity)是Java与数据库的接⼝规范,允许Java程序发送SQL指令并处理结果。
⽐较常见JdbcTemplate1.2 ODBC配置⼯具打开控制⾯板找到管理⼯具,当前⽬录有两个ODBC的配置⼯具。
分别是:ODBC Data Sources (32-bit)、ODBC 数据源(64 位)。
顾名思义⼀个是32位,⼀个是64位。
在配置ACCESS数据源时需要选择32位。
也可以直接在系统⽬录下找到对应的可执⾏⽂件。
1)32位:%windir%\syswow64\odbcad32.exe2)64位:%windir%\system32\odbcad32.exe题外话:syswow64 ⽬录存放的是32位的程序,system32⽬录存放的是64位的程序,在注册dll的时候需要注意下。
在接触驱动开发之前⼀直都弄反了。
这篇⽂章做了通俗易懂地解释1.3 ODBC 数据源连接配置⽹上收集整理,不保证正确性,仅供参考。
数据库连接参数MySQL driver={mysql};database=数据库;uid=账号;pwd=密码;MSSQL Serverdriver={sql server};server=服务器;database=数据库;uid=ITDragon;pwd=密码;Access driver={microsoft access driver (*.mdb)};dbq=mdb⽂件全路径;uid=ITDragon;pwd=密码;SQLite driver={SQLite3 ODBC Driver};database=db⽂件全路径PostgreSQL driver={PostgreSQL ANSI};server=服务器;uid=账号;pwd=密码;database=数据库;DBase driver={microsoft dbase driver (*.dbf)};driverid=277;dbq=dbf⽂件全路径;Oracle driver={microsoft odbc for oracle};server=服务器;uid=ITDragon;pwd=密码;MS text driver={microsoft text driver (* .txt; *.csv)};dbq=⽂件全路径;extensions=asc,csv,tab,txt;PersistSecurityInfo=false;Visual Foxpro driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;2. MySQL 数据源配置2.1 配置步骤第⼀步:双击ODBC 数据源(64 位),可以选择⽤户DSN(系统只对当前⽤户⽣效),也可以选择系统DSN(能登录当前系统的⽤户都⽣效)第⼆步:点击添加,选择事先安装好的MySQL ODBC xx Driver 驱动后点击完成。
在Win8系统上使用ODBC连接Access2013数据库
一、使用access2013创建数据库及数据库表
1、打开Access2013,点击空白桌面数据库
2、自定义数据库名以及数据库存储位置
Access支持.accdb和.mdb两种格式,例如:这里我们取名为DBTest.mdb
文件名和路径都选好后,点击创建,数据库就建好了
3、开始建立数据库表选择“表设计”
设置表字段及属性
设置username为主键。
在灰色部分点击鼠标右键,进行选择。
表建好后,Ctrl+s保存表,就会提示你为你的数据库表取名。
按以上步骤就完成了access数据库及数据库表的建立
二、使用ODBC连接Access2013数据库
1、找到管理工具
打开控制面板,在搜索中输入odbc
2、打开odbc开始进行连接操作
点击添加
如图下图进行选择,然后点击完成。
自定义数据源名称
选择之前建立DBTest.accdb的数据库
点击确定
按下图进行操作,就完成了odbc连接access2013数据库的操作。
程序发布的过程中,要完成对ODBC数据源的动态注册,不外乎以下几种方法:1:在安装程序制作软件如“InstallShield”中设置;2:利用软件工具其自身的注册(Registry)函数来实现;3:利用Windows的API函数来实现等。
今天我首先介绍的就是如何利用PB自身的注册函数来说明在PB中如何动态注册ODBC数据源。
为了完成对ODBC数据源的注册,首先需要了解在注册表中进行注册的相关信息,这里以Adaptive SQL Anywhere 8.0自身带的两个数据库在注册表中的信息来作一个简单说明:一、熟悉需要注册的信息1:了解对于系统默认已经配置好的若干个数据源,其信息在注册表中是如何存在的。
通过以下图示看到两个数据源名称被注册到“HKEY_CURRENT_USER\software\odbc\odbc.ini\odbc data sources”下。
2:然后,对于其中的某个数据源,其具体信息被注册到了“HKEY_CURRENT_USER\software\odbc\odbc.ini”。
在该目录下新增以该数据源名称为键名的子键,并在此键下添加连接数据源所需要的参数。
这些参数包括所连接数据库的位置、文件名称(databasefile)、启动数据库的命令文件(start)、pwd、uid等。
需要注意的是,不同数据库系统所需的参数并不相同,我们可以通过以下方法得到某一具体数据源的参数:首先在PB中通过手工设置,连接到数据源,然后运行注册表编辑程序(Regedit.exe),查看“HKEY_CURRENT_USER\software\odbc\odbc.ini”下,以该数据源名称为键名的子键中的值,这里的内容就是我们所需要的数据源的连接参数。
二、了解注册函数的语法了解了以上需要注册的信息之后,我们就可以通过PB的注册表写入函数来实现数据源的配置了.PB的注册函数为RegistrySet(),其语法格式如下所示:语法:RegistrySet ( key, valuename, valuetype, value )参数:key:string类型,指定键名;valuename:string类型,指定要访问值的名称。
如何创建ODBC数据源?
1)依次打开“控制面板”——“管理工具”——“数据源(ODBC)”;2)单击“系统DSN”——“添加”;
3)选择“Microsoft Access Driver (*.mdb)”,单击“完成”;
4)首先为数据源填写一个名字,然后单击“选择”;
5)在数据库名中,选择需要连接的数据库文件,然后单击“确定”;
说明:
数据库因为存放位置或名称的不同,与上图是有差异的,应该通过“驱动器”和“目录”选择正确的路径和数据库文件。
6)至此,基本的设置已完成,如果在创建数据库时设置了密码,那么还需要单击“高级”,完成一些必要的设置;
7)填写数据库的“登录名称”和“密码”,然后单击中“确定”;
8)至此,ODBC 数据源已设置完成,最后单击“确定”。
本节,我们成功的创建了ODBC数据源,下一节,将完成Phone spy 连接数据库的工作。
ODBC数据源的作⽤及配置什么是ODBC?ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA, WindowsOpenServicesArchitecture)中有关数据库的⼀个组成部分,它建⽴了⼀组规范,并提供了⼀组对数据库访问的标准 API(应⽤程序编程接⼝)。
这些API利⽤SQL来完成其⼤部分任务。
ODBC本⾝也提供了对SQL语⾔的⽀持,⽤户可以直接将SQL语句送给 ODBC。
⼀个基于ODBC的应⽤程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。
也就是说,不论是FoxPro、Access还是Oracle数据库,均可⽤ODBCAPI进⾏访问。
由此可见,ODBC的最⼤优点是能以统⼀的⽅式处理所有的数据库。
它可以连接各类数据库,甚⾄包括EXCEL和⽂本。
它提供统⼀的使⽤⽅法给程序,程序如果使⽤ODBC操作实际数据库,不管后台数据库是DB2还是SQL Server,或者升级了,程序⼏乎都可以以不变应万变。
⼀个完整的ODBC由下列⼏个部件组成:1. 应⽤程序(Application)。
2. ODBC管理器(Administrator)。
该程序位于Windows95控制⾯板(ControlPanel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。
3. 驱动程序管理器(DriverManager)。
驱动程序管理器包含在ODBC32.DLL中,对⽤户是透明的。
其任务是管理ODBC驱动程序,是ODBC 中最重要的部件。
4. ODBCAPI。
5. ODBC驱动程序。
是⼀些DLL,提供了ODBC和数据库之间的接⼝。
6. 数据源。
数据源包含了数据库位置和数据库类型等信息,实际上是⼀种数据连接的抽象。
应⽤程序要访问⼀个数据库,⾸先必须⽤ODBC管理器注册⼀个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建⽴起ODBC与具体数据库的联系。
利用vb开发数据库应用程序的基本步骤第一节数据库系统的增删改1.新建工程选择文件 |新建工程一个窗体有很多属性,我们常用的属性有Caption和Name例如在caption中输入学生基本信息录入,在Name中输入student_fr_in2.保存工程(1)保存窗体(2)保存工程对于文件命名应该是见名思意3. 使用ADO数据控件在使用ADO数据控件前,必须先通过“工程/部件”菜单命令选择“Microsoft ADO Data Control6.0(OLE DB)”选项,将ADO数据控件添加到工具箱。
ADO数据控件与Visual Basic 的内部数据控件很相似,它允许使用ADO数据控件的基本属性快速地创建与数据库的连接。
在部件属性对话框中选择Microsoft ADO Data Control 6.0 同时再选上Microsoft DataGrid A Control 6.0 。
在工具箱中多了两个控件,同时我们将Adodc控件拉倒窗体上,该控件是用与和数据库连接的。
选种Adodc1,按右键选“ADODC属性”进入属性页,这时可以建立和数据库,我们有三种选择:使用Data Link File,ODBS 和使用连接字符串。
一般使用连接字符串。
现在我们手工建立它,点击生成按钮—弹出数据连接属性对话框。
提供程序允许你指定连接的数据库,——这里选择Microsoft Jet 4.0 OLE DB Provider。
(连接Access数据库)点击(下一个)按钮将引导我们进入第二页:连接点击选择需要连接的数据库,点击打开按钮注意:我们看到所选的数据库有路径,如果数据库文件在当前的工程下,可以去掉路径可以点击测试连接按钮检验是否可以成功连接—应该是成功的。
最后,点击确定关闭数据连接属性对话框。
连接字符串已如下所示:“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Student.mdb;P ersist Security Info=False”在Adodc1属性页点击“记录源页”在命令源下拉列表中可以选择“表”、“文本”,“存储过程”等假如选择表,可以看到4.选择student表5. 添加DataGrid控件,设置DataSource属性为Adodc16. 运行工程。
在DELPHI中编程生成ACCESS数据库文件并创建指向此连接的ODBC数据源要实现创建ACCESS数据库文件,我们要用到Windows系统中用来完成ODBC 管理功能的DLL(odbccp32.dll)。
废话少说,让我们用个例子来演示吧!(一)在DELPHI中新建一个工程,并在窗体上添加两个按钮。
然后保存(二)从系统中搜索odbccp32.dll和odbcint.dll,一般在C:\WINDOWS\system32中,并将这两个文件拷贝到在上一步我们创建的DELPHI 工程的同级目录下(三)在程序的中添加关于常量的定义constODBC_ADD_DSN = 1; // 添加数据源ODBC_CONFIG_DSN = 2; // 配置数据源ODBC_REMOVE_DSN = 3; // 删除数据源ODBC_ADD_SYS_DSN = 4; // 添加系统DSNODBC_CONFIG_SYS_DSN = 5; // 配置系统DSNODBC_REMOVE_SYS_DSN = 6; // 删除系统DSN(四)在程序的type处添加声明typeTSQLConfigDataSource = function( hwndParent: HWND;fRequest: WORD;lpszDriver: LPCSTR;lpszAttributes: LPCSTR ) : BOOL; stdcall;(五)用来完成建立DSN并生成数据库文件的代码如下:procedure TForm1.Button1Click(Sender: TObject);varpFn: TSQLConfigDataSource;hLib: LongWord;strDriver: string;strAttr: string;strFile: string;fResult: BOOL;srInfo : TSearchRec;begin//获得程序所在路径strFile := ExtractFilePath(ParamStr(0))+'Test.MDB';//加载动态库hLib := LoadLibrary( 'ODBCCP32' );if( hLib <> NULL ) thenbegin@pFn := GetProcAddress( hLib, 'SQLConfigDataSource' );if( @pFn <> nil ) thenbegin// 重新建立DSNstrDriver := 'Microsoft Access Driver (*.mdb)';strAttr := Format( 'DSN=TestDSN'+#0+'DBQ=%s'+#0+'Exclusive=1'+#0+'Description=Test Data'+#0+#0,[strFile] );fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );if not fResult then ShowMessage( '创建DSN失败!' );// 检测/创建同DSN关联的MDB 文件if( FindFirst( strFile, 0, srInfo ) <> 0 ) thenbeginstrDriver := 'Microsoft Access Driver (*.mdb)';//,"CREATE_DB"的调用是Access(MS Jet引擎)的专有调用,类似的还有COMPACT_DB和REPAIR_DB等strAttr := Format( 'DSN=TestDSN'+#0+'DBQ=%s'+#0+'Exclusive=1'+#0+'Description=Test Data'+#0+'CREATE_DB="%s"'#0+#0,[strFile,strFile] );fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );if not fResult then ShowMessage( '创建MDB文件失败' );end;FindClose( srInfo );end;FreeLibrary( hLib );end else ShowMessage( '无法加载ODBCCP32.DLL' );end;procedure TForm1.Button2Click(Sender: TObject);varregisterTemp : TRegistry;bData : array[ 0..0 ] of byte;beginregisterTemp := TRegistry.Create;with registerTemp dobeginRootKey:=HKEY_LOCAL_MACHINE;//找到Software\ODBC\ODBC.INI\ODBC Data Sourcesif OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) thenbegin //注册DSN名称WriteString( 'MyAccess', 'Microsoft Access Driver (*.mdb)' );end else beginshowmessage('添加ODBC数据源失败');exit;end;CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息if OpenKey('Software\ODBC\ODBC.INI\MyAccess',True) thenbeginWriteString( 'DBQ', ExtractFilePath(ParamStr(0))+'Test.MDB' );//数据库目录,连接您的数据库WriteString( 'Description','我的新数据源' );//数据源描述WriteString( 'Driver', 'C:\WINDOWS\system32\odbcjt32.dll' );//驱动程序DLL文件WriteInteger( 'DriverId', 25 );//驱动程序标识WriteString( 'FIL', 'Ms Access;' );//Filter依据WriteInteger( 'SafeTransaction', 0 );//支持的事务操作数目WriteString( 'admin', '' );//用户名称bData[0] := 0;WriteBinaryData( 'Exclusive', bData, 1 );//非独占方式WriteBinaryData( 'ReadOnly', bData, 1 );//非只读方式end else beginshowmessage('添加ODBC数据源失败');exit;end;CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet//写入DSN数据库引擎配置信息if OpenKey('Software\ODBC\ODBC.INI\MyAccess\Engines\Jet',True) thenbeginWriteString( 'ImplicitCommitSync', 'Yes' );WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小WriteInteger( 'PageTimeout', 10 );//页超时WriteInteger( 'Threads', 3 );//支持的线程数目WriteString( 'UserCommitSync', 'Yes' );end else//创建键值失败beginshowmessage('增加ODBC数据源失败');exit;end;CloseKey;showmessage('增加新ODBC数据源成功');Free;end;end;(七)F9运行程序,首先点击BUTTON1,然后你可以在程序的同级目录下找打新建立的MDB文件,Test.MDB。
Windows7 64位系统ODBC数据源配置方法注意以下所说的步骤是在安装好SQL2000或者端内有绿色SQL的情况下,已经在查询分析器内一键建立并还原好数据库之后才进行的,请不要跳步骤进行,否则会出错。
一键端可直接操作。
(win7系统架设传奇3前请将UAC账户权限调至最低)Windows7 64位系统(包含Windows Vista 64位系统)不能直接用服务端内的ODBC数据源一键导入。
64位系统请不要点击该文件,否则会出现不必要的麻烦,必须手动配置,配置方法如下:1.首先来到C:\Windows\SysWOW64文件夹,打开odbcad32.exe2.在用户DSN选项卡上点击“添加”。
下拉选项框,看到最末尾,选取“SQL Server”,并点击完成3.首先建立第一个数据库(这里要建立的数据库数量可以根据自己端设置而定。
,为了方便说明和理解,这里只选取第一个account数据库建立为例子,另外5个的配置方法完全一样,名字变更即可。
不要忘了其他的5个数据库配置)名称填上account 服务器直接输入(local),注意不要下拉选服务器,有可能会卡住,直接输入字符就可以了。
如图所示,请注意看,4.上面的输入完毕后,点下一步,如图所示来配置,再点击下一步:修改默认数据库为account。
(与创立数据库名一致)如图点下一步测试数据源看下连接是是否成功,成功后就直接点完成就可以了。
剩下2个都如此操作。
用户DSN配置6个数据库完毕后,同样的方法,配置系统DSN,用1.4c插件的端为例,名字均一样分别是account、Game1、manage、conlog、Herocommon1、Kingforeiserverbasedata 请勿忘记配置,否则游戏数据网关会报错For Damon。
【ODBC】ODBC连接数据库详细说明ODBC一、ODBC简介开放数据库互连(ODBC)是微软提出的数据库访问接口标准。
开放数据库互连定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言。
通过使用ODBC,应用程序能够使用相同的源代码和各种各样的数据库进行交互。
这使得开发者不需要以特殊的数据库管理系统DBMS为目标,或者了解不同支撑背景的数据库的详细细节,就能够开发和发布客户/服务器应用程序。
下面是ODBC应用系统的体系结构。
二、ODBC句柄应用程序运行后,为维护执行的状态,ODBC 管理器和ODBC 驱动程序中必须保持足够的控制信息。
应用程序要求ODBC 管理器和ODBC 驱动程序为ODBC环境、每个连接以及每个SQL语句分配描述/控制信息存储空间,并返回指向各个存储区的句柄供其使用。
(1)环境句柄:整个ODBC上下文的根句柄。
标识全程数据访问控制信息的内存结构,包括有效连接句柄以及当前活动连接句柄。
ODBC将环境句柄定义为HENV类型的变量。
应用程序使用单一的环境句柄,在连接到数据源以前必须申请该句柄。
(2)连接句柄:管理有关数据库会话的所有信息。
连接句柄标识每个特定的连接信息的内存结构。
ODBC将环境句柄定义为HDBC类型的变量。
应用程序在连接数据源之前申请连接句柄。
每个连接句柄与环境句柄有关,环境句柄上可以有多个与其有关的连接句柄。
(3)语句句柄:ODBC语句包括应用访问数据源的SQL语句和语句相关的管理信息,语句句柄标识每个语句管理信息的内存结构。
ODBC将语句句柄定义为HSTMT类型的变量。
应用程序在提交SQL 请求之前也必须申请语句句柄。
每个语句句柄与一个连接句柄有关,每个连接句柄上可以有多个与其有关的语句句柄。
三、ODBC程序执行流程Ø分配环境句柄基于ODBC3.X版本的应用统一使用SQLAllocHandle来分配句柄。
调用时设计不同的句柄类型就可以获得该类型的句柄。
如何动态创建ODBC数据源ODBC管理程序设置DSN的秘密在注册表中,不信可以到HKEY_LOCAL_MACHINE\Software\ODBC去看看,肯定让你感觉已经成功了一半.首先来看看系统中已安装的ODBC数据库驱动程序.在HKEY_LOCAL_MACHINE\Software\ODBC\ ODBCInst.INI 中,存放着已经安装了的ODBC数据库驱动程序的信息,从这里可以查到已安装的ODBC数据库驱动程序对应的DLL文件等信息.在ODBCInst.INI\ODBC Drivers的各个键值中,键名是驱动程序名称(如Microsoft Access Driver(*.mdb)),键值为“Installed”,表示驱动程序已安装.在ODBCInst.INI\DriverName(DriverName为一个驱动程序名称,如Microsoft Access Driver(*.mdb))中,有驱动程序的详细信息,我们主要从这里获得ODBC驱动程序对应的DLL文件的路径和文件名,即键名Driver的键值,一般为"C:\WINDOWS\SYSTEM\FileName.DLL".然后来看系统DSN的注册信息,在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中,存放着系统DSN的注册信息,我们在ODBC管理面板设置的DSN参数就在这里.下面来看看创建一个ODBC系统DSN的步骤,即我们在ODBC 管理面板中完成参数设置后,ODBC管理程序是怎么在注册表中注册DSN信息的.以创建一个名称为MyAccess的Ms Access97类型的系统DSN为例,我们指定的参数主要有数据库类型(Microsoft Access Driver(*.mdb))、数据源名称(MyAccess)、数据源描述(我的ACCESS)、数据库路径(C:\Inetpub\wwwroot\Test.mdb),其它参数如用户名称、用户密码、独占、只读、系统数据库、默认目录、缓冲区大小、扫描行数、页超时等采用系统缺省参数.这时,注册系统DSN一般应有以下几个步骤:1.在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources中增加一个字符串键值,为MyAccess = Microsoft Access Driver(*.mdb),其中分别为数据源名称和数据库类型.这是在注册表中注册一个系统DSN名称.2.在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中创建一个子键(SubKey)MyAccess,即创建一个键为HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MyAccess,然后在其下创建一些键值,详细描述一个系统DSN的配置信息,主要信息有([]中的内容为笔者注释):DBQ=C:\Inetpub\wwwroot\T est.mdb [字符串,表示数据库路径]Description=我的ACCESS [字符串,表示数据库描述]Driver=C:\PWIN98\System\odbcjt32.dll [字符串,表示驱动程序,可见ODBCINST.INI]DriverId=0x00000019(25) [数字,表示驱动程序标识,不能改变] FIL=Ms Access; [字符串,可能与过滤Filter有关]SafeTransaction=0x00000000 [数字,可能表示支持事务性操作的个数]UID="" [字符串,表示用户名称,此处为空字符串]3.在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MyAccess中创建一个子键(SubKey)Engines,再在其下创建子键(SubKey)Jet,即创建一个键为HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\MyAcce ss\Engines\Jet,然后在其下创建一些键值,详细描述一个系统DSN的数据库引擎配置信息,主要信息有([]中的内容为笔者注释):ImplicitCommitSync=Yes [字符串,可能表示是否立即反映数据修改]MaxBufferSize=0x00000200(512) [数字,表示缓冲区大小]PageTimeout=0x00000005(5) [数字,表示页超时]Threads=0x00000003(3) [数字,可能表示支持的最大线程数目] UserCommitSync=Yes [字符串,可能表示是否立即将数据修改反映到用户]以上是建立一个系统DSN的基本信息(其它信息如选项或高级选项等信息也在这里设置,只不过因采用默认信息,注册表里没有列出),我们在程序中按上述步骤操作注册表,同样也能增加一个系统DSN或修改其配置.在下面的例子程序中,将按以上步骤建立一个系统DSN,请注意程序中的注释.{*******************************************************在本程序中,将创建一个ODBC系统数据源(DSN),数据源名称:MyAccess 数据源描述:我的新数据源数据库类型:ACCESS97对应数据库:C:\Inetpub\wwwroot\test.mdb*******************************************************}{ 注意应在USES语句中包含Registry }procedure TForm1.Button1Click(Sender: TObject);varregisterTemp : TRegistry;bData : array[ 0..0 ] of byte;beginregisterTemp := TRegistry.Create; //建立一个Registry实例with registerTemp dobeginRootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE//找到Software\ODBC\ODBC.INI\ODBC Data Sourcesif OpenKey(’Software\ODBC\ODBC.INI\ODBC Data Sources’,True) thenbegin //注册一个DSN名称WriteString( ’MyAccess’, ’Microsoft Access Driver (*.mdb)’ );endelsebegin//创建键值失败memo1.lines.add(’增加ODBC数据源失败’);exit;end;CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN 配置信息if OpenKey(’Software\ODBC\ODBC.INI\MyAccess’,True) thenbeginWriteString( ’DBQ’, ’C:\inetpub\wwwroot\test.mdb’ );//数据库目录WriteString( ’Description’, ’我的新数据源’ );//数据源描述WriteString( ’Driver’, ’C:\PWIN98\SYSTEM\odbcjt32.dll ’ );//驱动程序DLL文件WriteInteger( ’DriverId’, 25 );//驱动程序标识WriteSt ring( ’FIL’, ’Ms Access;’ );//Filter依据WriteInteger( ’SafeTransaction’, 0 );//支持的事务操作数目WriteString( ’UID’, ’’ );//用户名称bData[0] := 0;WriteBinaryData( ’Exclusive’, bData, 1 );//非独占方式WriteBinaryData( ’ReadOnly’, bData, 1 );//非只读方式endelse//创建键值失败beginmemo1.lines.add(’增加ODBC数据源失败’);exit;end;CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet//写入DSN数据库引擎配置信息ifOpenKey(’Software\ODBC\ODBC.INI\MyAccess\Engines\Jet’, True) thenbeginWriteString( ’ImplicitCommitSync’, ’Yes’ );WriteInteger( ’MaxBufferSize’, 512 );//缓冲区大小WriteInteger( ’PageTimeout’, 10 );//页超时WriteInteger( ’Threads’, 3 );//支持的线程数目WriteString( ’UserCommitSync’, ’Yes’ );endelse//创建键值失败beginmemo1.lines.add(’增加ODBC数据源失败’);exit;end;CloseKey;memo1.lines.add(’增加新ODBC数据源成功’);Free;end;end;以上程序在PWIN98+DELPHI3.0下调试通过.下面是创建常见数据库类型的DSN需要设置的信息([]为注释内容,除特殊注释外,各参数可见前面说明):1.Access(Microsoft Access Driver(*.mdb))DBQ、Description、Driver[odbcjt32.dll]、DriverID[25]、FIL[Ms Access;]、SafeTransaction[默认为0]、UID[默认为空]、Engines\Jet\ImplicitCommitSync[默认为Yes]、Engines\Jet\MaxBufferSize[默认512]、Engines\Jet\PageTimeout[默认为512]、Engines\Jet\Threads[默认为3]、Engines\Jet\UserCommitSync[默认为Yes]可选设置:SystemDb[字符串,系统数据库的路径]、ReadOnly[二进制,是否以只读方式打开,1为是,默认为0]、Exclusive[二进制,是否以独占方式打开,1为是,默认为0]、PWD[字符串,用户密码]2.EXCEL(Microsoft Excel Driver(*.xls))DBQ[Excel97(=path xx.xls)、 5.0/7.0(=path xx.xls)、4.0(=path)、3.0(=path)]、Description、Driver[odbcjt32.dll]、DefaultDir[Excel97(<>DBQ)、5.0/7.0(<>DBQ)、4.0(=DBQ)、3.0(=DBQ)]、DriverID[790(Excel97)、22(5.0/7.0)、278(4.0)、534(3.0)]、FIL[Excel5.0;]、ReadOnly、SafeTransaction、UID、Engines\Excel\ImplicitCommitSync、Engines\Excel\MaxScanRows[数字,扫描行数,默认为8]、Engines\Excel\Threads、Engines\Excel\UserCommitSync、Engines\Excel\FirstRowHasName[二进制,第一行是否是域名,1表示是,默认为1]注: Excel97和Excel7.0/5.0的DBQ对应一个XLS文件,而Excel4.0和Excel3.0则对应一个目录;DefaultDir对应一个目录,在Excel97和Excel7.0/5.0中是DBQ 所对应的路径,而在Excel4.0和Excel3.0下则与DBQ相同;各个版本的DriverID不同.3.dBase(Microsoft dBase Driver(*.dbf))DefaultDir[字符串,数据库文件所在目录]、Description、Driver[odbcjt32.dll]、DriverID[277(IV)、533(5.0)]、FIL[dbase III;]、SafeTransaction、UID、Engines\Xbase\ImplicitCommitSync、Engines\Xbase\Collating[字符串,排序依据,可为ASCII、International、Norwegian-Danish、Swedish-Finnish]、Engines\Xbase\Deleted[二进制,是否不显示被软删除的记录,0表示显示,默认为1]、Engines\Xbase\PageTimeout[默认为600]、Engines\Xbase\UserCommitSync、Engines\Xbase\Threads、Engines\Xbase\Statistics[二进制,是否用大约的行数,1为是,默认0]注:(dBaseIV和dBase5.0两个版本的DriverId有不同)4.Foxpro(Microsoft Foxpro Driver(*.dbf))DefaultDir[数据库文件所在目录]、Description、Driver[odbcjt32.dll]、DriverID[536(2.6)、280(2.5)]、FIL[Foxpro 2.0;]、SafeTransaction、UID、Engines\Xbase\Collating[字符串,排序依据,可为ASCII、International]、Engines\Xbase\Deleted[二进制,是否不显示被软删除的记录,0表示显示,默认为1]、Engines\Xbase\PageTimeout[默认为600]、Engines\Xbase\UserCommitSync、Engines\Xbase\Threads、Engines\Xbase\Statistics[二进制,是否用大约的行数,1为是,默认0]注:(Foxpro2.5和Foxpro2.6两个版本的DriverId有不同)还有一种方法就是用API函数的方法。
实验六ODBC的配置及使用一、实验目的:●理解ODBC的工作原理,掌握ODBC的配置方法;●会使用ODBC远程访问SQL SERVER2000;●熟悉嵌入式SQL的原理、特点,会使用游标二、实验设备和仪器1.硬件:PC一台,局域网环境2. 软件:win2000操作系统,sql server 2000三、实验内容及要求1. 配置ODBC数据源2.测试数据源,验证是否成功3.设计一个程序来连接该数据源四、实验准备:ODBC(Open Database Connectivity,开放数据库互连)是微软公司开发的一套开放数据库系统应用程序接口规范,目前它已成为一种工业标准,它提供了统一的数据库应用程序编程接口(API)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
SQL语言提供了两种不同的使用方式。
一种是在终端交互式方式下使用,另一种是将SQL语言嵌入到某种高级语言如PL/1、COBOL、FORTRAN、C中使用,利用高级语言的过程性结构来弥补SQL语言在实现复杂应用方面的不足,这种方式下使用的SQL语言称为嵌入式SQL(Embedded SQL),而嵌入SQL的高级语言称为主语言或宿主语言。
对宿主型数据库语言SQL,DBMS可采用两种方法处理,一种是预编译,另一种是修改和扩充主语言使之能处理SQL语句。
目前采用较多的是预编译的方法。
即由DBMS的预处理程序对源程序进行扫描,识别出SQL语句,把它们转换成主语言调用语句,以使主语言编译程序能识别它,最后由主语言的编译程序将整个源程序编译成目标码。
五、实验原理及步骤:一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。
一个完整的ODBC由下列几个部件组成:应用程序、ODBC管理器、驱动程序管理器(Driver Manager)、ODBC API、ODBC 驱动程序、数据源。
VS2015环境下与Access数据库的ODBC连接开发环境和工具:win10家庭版+vs2015+Access2010。
1.首先在Access2010 建立好自己的数据库,这里不详细介绍了,记住保存的路径。
第一步是登陆数据源(1)打开控制面板->管理工具->ODBC数据源32位,在用户选项卡下点击添加(2)选择图中所示驱动程序(这也是与VC6.0的不同)(3)起一个数据源名(记住这个名,以后会用到),说明可以随便稍作描述。
点击数据库下的选择,选择已经建好的Aceess数据库、表,点击确定、确定。
至此数据源的登陆完成。
接下来要到VS2015 的环境中添加与数据库有关的类2。
添加表类。
与VC6.0不同的是,VS2015里面其实是有专门的ODBC使用者设置,(1)右击类视图下的工程名->添加->类,(2)选择MFC下的MFC ODBC使用者,直接点击添加;(3)然后来到这个界面,点击数据源,(4)出现登录名和密码,这是在高选项中设置的,我的没有设置过,不用管,直接点击确定;(5)切换到机器数据源选项卡;选择所需要的数据源(6)选择一个数据源中的Access数据表,点击确定;(7)接下来起一个方便记忆的类名,选择动态集;在这说一下动态集与快照的特点记录集主要分为快照(Snapshot)和动态集(Dynaset)两种。
CRecordset类对这两种支持。
这两种记录集的区别在于它们对别的应用改变数据源记录采取的是不一样的处理方法。
快照型(Snapshot)记录集提供了对数据的静态视。
快照是个很形象的术语,就像是对数据源的某些记录照了一张照片一样。
当别的用户改变了记录时(包括修改、添加和删除),快照中的记录并不受影响,意思就是,快照不反映别的用户对数据源记录的改变。
直到调用了CRecordset::Requery重新查询后,快照才会反映变化。
对于像产生报告或执行计算这样的不希望中途变动的工作,快照是很有用的。
ODBC、BDE数据源及其的建立方法应用程序对数据库进行访问有多种方法,例如通过ODBC、ADO等。
本书所有实例都是通过ODBC和BDE来进行访问的。
建立一个ODBC数据源连接的方法如下所述。
(1)进入Windows的控制面板,在控制面板中找到【数据源(ODBC)】选项并双击,进入【ODBC数据源管理器】对话框,如图1所示。
如果控制面板中没有该选项可以在Windows 目录下查找odbcad32.exe可执行文件并运行它。
图1 ODBC数据源管理器(2)选择【系统DSN】选项卡并单击【添加】按钮,出现【创建新数据源】对话框,选择SQL Server项,如图2所示。
图2 创建新数据源(3)单击【完成】按钮,出现数据源参数设置对话框,输入数据源的名称及数据源指向的服务器名称,本例输入的是jxclink和“.”,如图3所示,服务器使用“.”号表示使用的服务器是本地的计算机。
图3 设置数据源参数(4)单击【下一步】按钮,出现安全认证的对话框,设置访问数据库的用户名和密码后单击【下一步】按钮,出现选择数据库的对话框,如图4所示。
选中【更改默认的数据库为】复选框,并将连接数据库更改为前面建立的数据库。
图4 选择数据库(5)单击【下一步】按钮,最终出现确认的对话框,如图5所示。
单击【测试数据源】按钮可以测试新建立的数据源是否能够连接;单击【完成】按钮可以完成ODBC数据源的建立。
图5 确认建立一个BDE数据源连接的方法如下所述。
进入BDE Administrator,选择Object | New命令,弹出New DatabaseAlias对话框,如图6所示。
从中选择SQL Server选项,单击OK按钮后将数据源名称改为“jxclink”,ODBC DNS属性为“jxclink”即可。
图6 选择BDE数据源类型注意:要直接使用光盘中的代码,必须手工建立起相应的ODBC和BDE数据源连接。
系统本地ACCESS 数据库ODBC 配置手工建立 本地ACCESS 数据库文件可由系统安装目录拷贝。
系统数据源设置(ODBC 配置) 用鼠标点击开始菜单-->设置-->控制面板,出现以下界面:'^5et P 引P 匚 Interface .J Symantec LiveUpdate 渤传宜 &]打E 卩机'舜电话和调制解调器选项 使用從制面板"中的设置来于人化您迪电源选项圍辅助功能选项 画营理工具 蠹)键盘 区域选项 旦|任务计划 控制面板选定项目可以查着苴说明" ServerExbension...: Windo 朋I 」nd 世 管理工具洙定项目可以查看苴说明.配置您计算机的高级设置/本地安全策瞩 贏服务 型计算机管理 £3爭件查看器 知数据源(ODBC ) 1 KB 2KE 2KB 2KB 2KE 2KB2 KB 2KB 1 K6 配置并COM+应用程序g 另谙琴阅:筮组件服务双击运行”数据源(ODBC )”,出现如下 ODBC 配置窗口名称驱动程序ECDCMusicEisVorkF&dFD_YH fj-hisbaEe fjpar ambaseFjparambase^ source fj Rulebase f j Rul ft base Mnp £:;UI £Tli^ “Ad^tive Serv电F ATLywhar-e T. 0Mi crosof t Access Driver (*. m OracleODBC DriverOracle ODBC DriverMicrosoftMicrosoftMicrosoftMicrosoftMicrosoft11 —_ _ _. —_ f XkeeesxAccessAccessAccess 丸亡亡essDriverBriberEr i verDriverDr i v@rTl"添加@)一I 删除® I 配置也) (I)i^ODBC数靈谓管理器用户DSN丟统ESH |文件D删| §険程序|跟踪|连接池|关于|确定I 职消I 应用如I 帮助I点击“添加”按钮,继续在数据源驱动程序选择窗中选中需要的驱动程序(如配置ACCESS数据库,则选择Microsoft Access Driver(*.mdb)驱动,SQL数据库则选择SQL SERVER驱动)后,点击“完成”按钮,继续,如配置ACCESS数据库则出现如下窗口,在数据源名编辑窗中输入fjparambase(系统参数库数据源别名),点击“选中”按钮,在弹出的文件选择窗中选中参数数据库文件Para.mdb(—般系统默认路径为C:\FJNT\Database\Para.mdb)。
用Access数据库建一个名为a1.mdb的数据库,表设计如下图表名为Table1,放在D盘根目录下。
打开odbc数据源(在控制面板\系统和安全\管理工具里)单击添加选择Access Driver 单击完成在弹出的对话框中,数据源名称为dataS1,然后单击选择,选择D盘的a1.mdb单击确定完成配置。
新建一个ConnectAccess.java文件检测是否成功连接,代码如下:import java.sql.*;public class ConnectAccess {public static void main(String args[]) throws Exception {ConnectAccess ca=new ConnectAccess();ca.ConnectAccessDataSource();}public void ConnectAccessDataSource()throws Exception {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");String dbur1 = "jdbc:odbc:dataS1";Connection conn = DriverManager.getConnection(dbur1);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("select * from Table1");while (rs.next()) {System.out.println(rs.getString(1));System.out.println(rs.getString(2));System.out.println(rs.getString(3));}rs.close();stmt.close();conn.close();}}运行结果如下:。
Statement接口包括了执行SQL语句的方法。
Statement对象用于执行不带参数的简单SQL语句。
Statement接口常用的方法如下。
(1)ResultSet executeQuery(String sql): 用于执行SQL语句,返回单个ResultSet对象,只接受SELECT语句,其他类型的SQL语句将使方法出现异常。
抛出SQLException异常。
(2)int executeUpdate(String sql):用于执行INSERT、UPDA TE、DELETE等语句,以及SQL语言中的DDL(数据定义语言)语句,如CREA TE TABLE等。
抛出SQLException异常。
(3)void close(): 立即释放Statement对象数据和JDBC资源,抛出SQLException异常。
ResultSet接口用来容纳数据库查询操作所获得的结果集合。
ResultSet目前只提供基本的顺序读取数据的能力。
提取执行结果常用的方法如下。
(1)使用boolean next()方法:实现数据的遍历操作,boolean next()方法用来将ResultSet内部的数据游标指向下一个数据,游标最初位于结果集第一行之前,要访问一个新的ResultSet中的数据,必须先执行一次next()方法,使得游标指向第一个数据。
如果没有下一个数据,方法将返回false。
通常遍历数据使用如下形式的代码:while(resultSet.next()){resultSet.getXXX(index);}(2)使用getXXX()方法:使用相应类型的getXXX()方法可以从当前行指定列中提取不同类型的数据。
例如,提取V ARCHAR类型的数据时就要用getString()方法,而提取FLOA T类型数据的方法就使用getFloat()方法。
11.2 实验目的(1)了解JDBC 应用的环境配置。
(2)学习通过JDBC实现Access数据库的连接。
系统本地ACCESS数据库ODBC配置手工建立
本地ACCESS数据库文件可由系统安装目录拷贝。
系统数据源设置(ODBC配置)
用鼠标点击开始菜单-->设置-->控制面板,出现以下界面:
双击打开”管理工具”,继续
双击运行”数据源(ODBC)”,出现如下ODBC配置窗口
点击“添加”按钮,继续
在数据源驱动程序选择窗中选中需要的驱动程序(如配置ACCESS数据库,则选择Microsoft Access Driver(*.mdb)驱动,SQL数据库则选择SQL SERVER驱动)后,点击“完成”按钮,继续,
如配置ACCESS数据库则出现如下窗口,在数据源名编辑窗中输入fjparambase(系统参数库数据源别名),点击“选中”按钮,在弹出的文件选择窗中选中参数数据库文件Para.mdb(一般系统默认路径为C:\FJNT\Database\Para.mdb)。
然后点击“确定”按钮,一个数据源就配好了。
同理,按照同样的方法添加系统ODBC配置,如下表所示:。