- 1.为什么 ROUND(9.95,1) 返回 9.9 而不是 10.0? 9.95不应该圆整 (四舍五入)吗?
-
-
- 答案:
- SQLite 使用二进制算术,在二进制中, 无法用有限的二进制位数表示 9.95 。使用 64-bit IEEE 浮点 (SQLite就是使用这个)最接近 9.95 的二进制表示是 9.949999999999999289457264239899814128875732421875。 所在,当你输入 9.95 时,SQLite实际上以为是上面的数字, 在四舍五入时会舍去。
这种问题在使用二进制浮点数的任何时候都会出现。 通常的规则是记住很多有限的十进制小数都没有一个对应的二进制表示。 所以,它们只能使用最接近的二进制数。它们通常非常接近, 但也会有些微小的不同,有些时候也会导致你所期望的不同的结果。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 2.SQLITE_SCHEMA error是什么错误?为什么会出现该错误?
-
-
- 答案:
- 当一个准备好的(prepared)SQL语句不再有效或者无法执行时, 将返回一个 SQLITE_SCHEMA 错误。发生该错误时,SQL语句必须使用 sqlite3_prepare() API来重新编译. 在 SQLite 3 中, 一个 SQLITE_SCHEMA 错误只会发生在用 sqlite3_prepare()/sqlite3_step()/sqlite3_finalize() API 执行 SQL 时。而不会发生在使用 sqlite3_exec()时。 在版本2中不是这样。
准备好的语句失效的最通常原因是:在语句准备好后, 数据库的模式又被修改了。另外的原因会发生在:
数据库离线:DETACHed.
数据库被 VACUUMed
一个用户存储过程定义被删除或改变。
一个 collation 序列定义被删除或改变。
认证函数被改变。
在所有情况下,解决方法是重新编译并执行该SQL语句。 因为一个已准备好的语句可以由于其它进程改变数据库模式而失效, 所有使用 sqlite3_prepare()/sqlite3_step()/sqlite3_finalize() API 的代码都应准备处理 SQLITE_SCHEMA 错误。下面给出一个例子:
int rc;
sqlite3_stmt *pStmt;
char zSql[] = "SELECT .....";
do {
/* Compile the statement from SQL. Assume success. */
sqlite3_prepare(pDb, zSql, -1, &pStmt, 0);
while( SQLITE_ROW==sqlite3_step(pStmt) ){
/* Do something with the row of available data */
}
/* Finalize the statement. If an SQLITE_SCHEMA erro - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 3.如何在字符串中使用单引号(')?
-
- 答案:
- SQL 标准规定,在字符串中,单引号需要使用逃逸字符,即在一行中使用两个单引号。在这方面 SQL 用起来类似 Pascal 语言。 SQLite 尊循标准。如: INSERT INTO xyz VALUES('5 O''clock');
-
- 4.我可以在商业产品中使用SQLite而不需支付许可费用吗?
-
- 答案:
- 是的。SQLite 在 public domain。 对代码的任何部分没有任何所有权声明。你可以使用它做任何事。
-
- 5.我在数据库中删除了很多数据,但数据库文件没有变小,是Bug吗?
-
-
- 答案:
- 不是。当你从SQLite数据库中删除数据时, 未用的磁盘空间将会加入一个内部的“自由列表”中。 当你下次插入数据时,这部分空间可以重用。磁盘空间不会丢失, 但也不会返还给操作系统。
如果删除了大量数据,而又想缩小数据库文件占用的空间,执行 VACUUM 命令。 VACUUM 将会从头重新组织数据库。这将会使用数据库有一个空的“自由链表”, 数据库文件也会最小。但要注意的是,VACUUM 的执行会需要一些时间 (在SQLite开发时,在Linux上,大约每M字节需要半秒种),并且, 执行过程中需要原数据库文件至多两倍的临时磁盘空间。
对于 SQLite 3.1版本,一个 auto-vacumm 模式可以替代 VACUUM 命令。 可以使用 auto_vacuum pragma 打开。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 6.在SQLite中,如何在一个表上添加或删除一列?
-
-
- 7.SQLite支持二进制大对象吗?
-
- 答案:
- SQLite 3.0 及以后版本允许你在任何列中存储 BLOB 数据。 即使该列被声明为其它类型也可以。
-
- 8.在SQLite中,VARCHAR字段最长是多少?
-
- 答案:
- SQLite 不强制 VARCHAR 的长度。 你可以在 SQLITE 中声明一个 VARCHAR(10),SQLite还是可以很高兴地允许你放入500个字符。 并且这500个字符是原封不动的,它永远不会被截断。
-
- 9.SQLite数据库有已知的大小限制吗?
-
- 答案:
- 对有关SQLite限制的详细讨论,见 limits.html
-
- 10.在SQLite数据库中如何列出所有的表和索引?
-
-
- 答案:
- 如果你运行 sqlite3 命令行来访问你的数据库,可以键入 “.tables”来获得所有表的列表或者,你可以输入 “.schema” 来看整个数据库模式,包括所有的表的索引。 输入这些命令,后面跟一个LIKE模式匹配可以限制显示的表。
在一个 C/C++ 程序中(或者脚本语言使用 Tcl/Ruby/Perl/Python 等) 你可以在一个特殊的名叫 SQLITE_MASTER 上执行一个SELECT查询以获得所有 表的索引。每一个 SQLite 数据库都有一个叫 SQLITE_MASTER 的表, 它定义数据库的模式。 SQLITE_MASTER 表看起来如下:
CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);对于表来说,type 字段永远是 'table',name 字段永远是表的名字。所以,要获得数据库中所有表的列表, 使用下列SELECT语句:
SELECT name FROM sqlite_master
WHERE type='table'
ORDER BY name;对于索引,type 等于 'index', name 则是索引的名字,tbl_name 是该索引所属的表的名字。 不管是表还是索引,sql 字段是原先用 CREATE TABLE 或 CREATE INDEX 语句创建它们时的命令文本。对于自动创建的索引(用来实现 PRIMARY KEY 或 UNIQUE 约束),sql字段为NULL。
SQLITE_MASTER 表是只读的。不能对它使用 UPDATE、INSERT 或 DELETE。 它会被 CREATE TABLE、CREATE INDEX、DROP TABLE 和 DROP INDEX 命令自动更新。
临时表不会出现在 SQLITE_MASTER 表中。临时表及其索引和触发器存放在另外一个叫 SQLITE_TEMP_MASTER 的表中。SQLITE_TEMP_MASTER 跟 SQLITE_MASTER 差不多, 但它只是对于创建那些临时表的应用可见。如果要获得所有表的列表, 不管是永久的还是临时的,可以使用类似下面的命令:
SELECT name FROM
(SELECT * FROM sqlite_master UNION ALL
SELECT * FROM sqlite_temp_master)
WHERE type='table'
ORDER BY name - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 11.SQLite线程安全吗?
-
-
- 答案:
- SQLite 是线程安全的。由于很多用户会忽略我们在上一段中给出的建议, 我们做出了这种让步。但是,为了达到线程安全,SQLite在编译时必须将 SQLITE_THREADSAFE 预处理宏置为1。在Windows和Linux上, 已编译的好的二进制发行版中都是这样设置的。 如果不确定你所使用的库是否是线程安全的,可以调用 sqlite3_threadsafe() 接口找出。
在 3.3.1 版本之前,一个 sqlite3 结构只能被用于调用 sqlite3_open 创建的同一线程。你不能在一个线程中打开数据库, 然后将数据库句柄传递给另外一个进程使用。 这主要是由于在好多通用的线程实现(如RedHat9)中的限制引起的(是Bug吗?)。 特别的,在有问题的系统上,一个进程创建的 fcntl() 锁无法被其它线程清除或修改。 所以,由于 SQLite 大量使用 fcntl() 锁做并发控制, 如果你在不同的线程间移动数据库连接,就可能会出现严重的问题。
在3.3.1版本上,关于在线程间移动数据库连接的限制变得宽松了。 在它及以后的版本中,只要连接没有持有 fcntl() 锁,在线程间移动句柄是安全的。 如果没有未决的事务,并且所有的语句都已执行完毕, 你就可以安全的假定不再持有任何锁。
在UNIX中,在执行 fork() 系统调用时不应携带已打开的数据库进入子进程。 那样做将会有问题。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 12.多个应用程序或一个应用程序的多个实例可以同时访问同一个数据库文件吗?
-
-
- 答案:
- 多个进程可同时打开同一个数据库。多个进程可以同时进行SELECT 操作,但在任一时刻,只能有一个进程对数据库进行更改。
SQLite使用读、写锁控制对数据库的访问。(在Win95/98/ME等不支持读、 写锁的系统下,使用一个概率性的模拟来代替。)但使用时要注意: 如果数据库文件存放于一个NFS文件系统上,这种锁机制可能不能正常工作。 这是因为 fcntl() 文件锁在很多NFS上没有正确的实现。 在可能有多个进程同时访问数据库的时候,应该避免将数据库文件放到NFS上。 在Windows上,Microsoft的文档中说:如果使用 FAT 文件系统而没有运行 share.exe 守护进程,那么锁可能是不能正常使用的。那些在Windows上有很多经验的人告诉我: 对于网络文件,文件锁的实现有好多Bug,是靠不住的。如果他们说的是对的, 那么在两台或多台Windows机器间共享数据库可能会引起不期望的问题。
我们意识到,没有其它嵌入式的 SQL 数据库引擎能象 SQLite 这样处理如此多的并发。SQLite允许多个进程同时打开一个数据库, 同时读一个数据库。当有任何进程想要写时,它必须在更新过程中锁住数据库文件。 但那通常只是几毫秒的时间。其它进程只需等待写进程干完活结束。 典型地,其它嵌入式的SQL数据库引擎同时只允许一个进程连接到数据库。
但是,Client/Server数据库引擎(如 PostgreSQL, MySQL, 或 Oracle) 通常支持更高级别的并发,并且允许多个进程同时写同一个数据库。 这种机制在Client/Server结构的数据库上是可能的, 因为总是有一个单一的服务器进程很好地控制、协调对数据库的访问。 如果你的应用程序需要很多的并发,那么你应该考虑使用一个Client/Server 结构的数据库。但经验表明,很多应用程序需要的并发,往往比其设计者所想象的少得多。
当SQLite试图访问一个被其它进程锁住的文件时,缺省的行为是返回 SQLITE_BUSY。 可以在C代码中使用 sqlite3_busy_handler() 或 sqlite3_busy_timeout() API 函数调整这一行为。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 13.利用PreparedStatement对象提高数据库的总体效率
-
-
- 答案:
- 在使用PreparedStatement对象执行SQL命令时,命令被数据库进行解析和编译,然后被放到命令缓冲区。然后,每当执行同一个PreparedStatement对象时,它就会被再解析一次,但不会被再次编译。在缓冲区中可以发现预编译的命令,并且可以重新使用。在有大量用户的企业级应用软件中,经常会重复执行相同的SQL命令,使用PreparedStatement对象带来的编译次数的减少能够提高数据库的总体性能。如果不是在客户端创建、预备、执行PreparedStatement任务需要的时间长于Statement任务,我会建议在除动态SQL命令之外的所有情况下使用PreparedStatement对象。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 14.利用helper函数对动态SQL命令进行格式化
-
-
- 15.在动态SQL或有时间限制的命令中使用Statement对象
-
-
- 答案:
- 在执行SQL命令时,我们有二种选择:可以使用PreparedStatement对象,也可以使用Statement对象。无论多少次地使用同一个SQL命令,PreparedStatement都只对它解析和编译一次。当使用Statement对象时,每次执行一个SQL命令时,都会对它进行解析和编译。这可能会使你认为,使用PreparedStatement对象比使用Statement对象的速度更快。然而,我进行的测试表明,在客户端软件中,情况并非如此。因此,在有时间限制的SQL操作中,除非成批地处理SQL命令,我们应当考虑使用Statement对象。
此外,使用Statement对象也使得编写动态SQL命令更加简单,因为我们可以将字符串连接在一起,建立一个有效的SQL命令。因此,我认为,Statement对象可以使动态SQL命令的创建和执行变得更加简单。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 16.关闭自动提交功能,提高系统性能
-
-
- 17.在客户端软件开发中使用Thin驱动程序
-
-
- 答案:
- 在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于
应用软件、applets、servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用Java本地化接口(JNI),通过Oracle客户端软件与数据库进行通讯。Thin驱动程序是纯Java驱动程序,它直接与数据库进行通讯。为了获得最高的性能,Oracle建议在客户端软件的开发中使用OCI驱动程序,这似乎是正确的。但我建议使用Thin驱动程序,因为通过多次测试发现,在通常情况下,Thin驱动程序的性能都超过了OCI驱动程序。 - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 18.有些时候也连接上了,但就是不能访问,或者提示说sql语句有错误
-
-
- 19.使用DriverManager.getConnection()方法
-
-
- 答案:
- 第一:你需要设置classpath,它是你得jvm加载类时所要寻找的路径。
当然首先你要有jdbs driver for sqlserver。
设置环境变量:window os:set classpath=.;${your path to save the driver}/msbase.jar;${}/mssqlserver.jar;${}/msutil.jar
第二:注册你的驱动registering the driver
注册驱动告诉你得jdbc管理器去加载什么驱动程序类,
当使用class.forName(),你必须指定驱动类名称,
com.microsoft.jdbc.sqlserver.SQLServerDriver.例如:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
第三:在注册完一个驱动类后,你必须把你的数据库的物理信息以一个url的形式传给管理器,下面是一个url模版:jdbc:microsoft:sqlserver://server_name:port,其中server2000默认的端口号为
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 20.出现ClassNotFoundException,这个问题是由于你没有把driver类放到你的classpath中,也就是说
-
- 答案:
- jb:可以在工程属性中加入这三个包,netbean:可以把这三个包copy到某一个 lib下,也就是某个类的公共库中
-
- 21.Sql server安装不上
-
-
- 答案:
- ①、用户名必须是administrator。
②、直接双击“数据库安装”不能安装时,可进行程序安装目录下选择SETUPMSDE进行安装或进入到程序安装目录下选择MSDE,进入后双击SETUP。
③、Sql server7.0与Sql server2000不兼容,必须先将7.0删掉后再安装2000。
卸载Sql server7.0没有正确卸载时,会导致注册表中存在SQLSERVER的注册信息,在开始菜单的启动栏中存在服务管理器的启动项,运行时会提示找不到后缀名为.DLL的文件
,不能启动服务管理器。
解决办法:在运行中输入“regedit”,进入注册表,找到HKEY_LOCAL_MACHINE注册项,在扩展菜单中选择SOFTWARE打开扩展菜单,找到MicroSoft打开后选择其下的
MSSQLServer项,点击右键将这个文件夹删除,即可安装。安装完成后,运行服务管理器时如果提示找不到后缀名为.DLL的文件,在控制面板中安装后的MSDE卸载重新安装,
便可解决问题。 - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 22.这是软件设计的一个BUG(错误)。当您以一个中文命名的操作系统用户登陆系统并在其环境下安装到第四步时,有时出现此错误。
-
-
- 答案:
- 另建一个以英文命名的(操作)系统用户(user),以这个用户登陆系统,在其环境下重装SQL Server(数据库安装)即可。接下来您再以中文用户登陆系统
,仍然可以操作。这只是因为用户名的问题导致SQL Server不能被正常安装,换了英文用户装了SQL Server后,回头不影响其它任何用户使用该软件。
解决之道(2):不用换英文用户,另找一个SQL Server 2000光盘来安装也可以。光盘上自带的SQL Server实际上是MSDE-----这是一个简化了的SQL Server版本(安装之
后,在硬盘的C或D分区上的gmisinfo文件夹中有MSDE这样的子文件夹即是)。现在看来并不好用,所以直接找一个正式的SQL Server 2000也能解决上述问题。 - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 23.怎样卸载msde数据库?
-
-
- 答案:
- 在卸载前要注意做好数据的备份工作,以便于以后做还原。
(1) 停止SQL SERVER的服务:双击桌面右下角的图标:
(2) 停止SQL SERVER服务;如果是:MSDE ,点击服务器下拉框,选择“***\FPP”(***为本机的机器名)
(3) 用鼠标右键点击桌面右下角的图标,点击“退出”;
(4) 到控制面板中卸载数据库
(5) 程序文件和数据文件的卸载。如果SQL Server是默认安装,程序文件和数据文件在同一路径下,将整个Microsoft SQL Server文件夹删除掉,再找到相对应的数
据文件夹MSSQL进行删除。
(6) 注册表信息的删除。 【开始】->【运行】->输入regedit,点开HKEY_LOCAL_MACHINE->software->microsoft,找到microsoft SQL Server和MSSQLServer。
SQL SERVER:右击这两个文件选择删除,关闭注册表。MSDE:只删除microsoft SQL Server\FPP
(7) 重新启动电脑就可以了
Microsoft SQL Server安装问题:
有时在安装Microsoft SQL Server即“数据库安装”是有这样的出错提示:
“C:\DOCUME~1\乱码local~1\TEMP\XXP000.TMP\setepre.exe -S -SMS”
接下来无法安装SQL Server。 - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 24.如果出现“指定的实例名无效”?
-
-
- 25.服务器安装完SQL SERVER 2000数据库,客户端无法连接数据库
-
- 答案:
- 请确认打了sql server的sp3, 如果系统是windows 2000 server 请确认系统打了sp4
-
- 26.创建数据库时提示“连接数据库失败,请检查输入ip地址、用户名和密码是否正确”
-
-
- 答案:
- 1)、首先确定您已安装数据库(sql server 7.0以上或msde);
2)、如果数据库服务已经正常启动(屏幕右下角有一绿色三角形图标,如果是红色的方块形图标,用右键单击,然后在出来的菜单中选择MSSQLSERVER-启动,稍等图标
变为绿色),然后创建数据库 ;
3)、如果第二步还没有创建成功,在创建数据库的界面中的服务器地址中输入“.”,然后创建数据库,如果还是不成功,双击右下角的绿色图标,把“服务器(V)”后
边文本框中的内容(不包括\fpp)拷贝到创建数据库界面中的“服务器地址”中),然后创建数据库 - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 27.安装MSDE时,出现无法配置服务器错误怎么办?
-
-
- 28.安装MSDE时,出现“实例名已被指定”错误?
-
- 答案:
- MSDE已经被安装在计算机上,不需要重新安装。请到[开始]--[程序]――[启动]选择“服务管理器”启动SQL服务。启动SQL服务后就可以安装软件了
-
- 29.Access不是一种存储格式,是一种软件。
-
-
- 答案:
-
请大家严格区分 Access 软件与 MDB 格式。以下的语句是错误的:“我用VB来开发MIS系统,数据存储在ACCESS中。”。VB下调用 MDB 格式(或 JET DB)只是调用一种格式的文件而已,并没有调用到 Access,其实官方说法叫 “VB 的 JET 应用”。另外,MDB 格式的文件也可以被其他开发工具,比如 DELPHI / PB / C / PHP / ASP / CGI / C# / J# / JAVA / VB.NET / C.NET.。.. 调用。但是被调用的只是 MDB 文件,很多 ACCESS 软件所具有的功能,这些开发工具是无法调用的。
也正因为如此,类似这样的问题“我的系统中没有安装 OFFICE ACCESS,是否能用 ASP 调用 ACCESS 数据库呢?”,答案是:当然可以,其实你根本没有使用 ACCESS 这个软件,只是使用了 MDB 这种数据库格式,而这种格式只要系统中有 OLE DB 引擎就可以支持。WINDOWS 98 以及以上版本的 WINDOWS 操作系统都内置支持 OLE DB 引擎。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 30.Access是 Microsoft Office 的一个组件,一个前后台结合的数据库“软件”。
-
-
- 31.装SQL数据库
-
-
- 32.要恢复这两个帐户,可以使用以下的方法
-
-
- 答案:
- .打开企业管理器,展开服务器组,然后展开服务器
2.展开"安全性",右击"登录",然后单击"新建登录"
3.在"名称"框中,输入 BUILTIN\Administrators
4.在"服务器角色"选项卡中,选择"System Administrators"
5.点击"确定"退出
6.使用同样方法添加 <机器名>\Administrator 登录.
说明:
以下注册表键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
的值决定了SQL Server将采取何种身份验证模式.
1.表示使用"Windows 身份验证"模式
2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).
修改MSDE登陆密码
先用命令(注意:E大写):
osql -E
登陆,然后用
使用 sp_password 存储过程。下面的示例将“sa”登录的密码从“ok”更改为“hello”:
EXEC sp_password 'ok', 'hello','sa'
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 33.无法连接到服务器,用户xxx登陆失败"
-
-
- 答案:
- 该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,
因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:
1.在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server
2.展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡
3.在"身份验证"下,选择"SQL Server和 Windows ".
4.重新启动SQL Server服务.
在以上解决方法中,如果在第 1 步中使用"使用 Windows 身份验证"连接 SQL Server 失败,
那就通过修改注册表来解决此问题:
1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器
2.依次展开注册表项,浏览到以下注册表键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
3.在屏幕右方找到名称"LoginMode",双击编辑双字节值
4.将原值从1改为2,点击"确定"
5.关闭注册表编辑器
6.重新启动SQL Server服务. - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 34.在安装SQL时遇到问题:“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。” 的解决办法
-
-
- 35.如何做好数据库备份?
-
-
- 36.电脑重新安装操作系统后怎么使用上海岁荣的应用软件?
-
-
- 37.计算机重新安装操作系统后,在没有重新安装我们的应用软件(例如:临床辅助系统,病例数据库系统、随访系统等)的情况下,直接启动应用程序后,或者登陆界面点【登录】或者【确定】后,提示错误信息:
-
-
- 答案:
-
我们的软件的单机版采用的数据库引擎有两种:
Sybase公司的ASA:有多个版本,常见的有7.0,8.0,9.0等。7.0之前的版本叫做SQL Anywhere 7.0;之后的版本叫做Adaptive SQL Anywhere。该数据库的主程序文件根据版本不同而有所不同:dbeng7.exe/dbeng8.exe/dbeng9.exe等。(当然,也可以采用ASA来构建局域网应用数据库平台,那么对应的主程序文件为:dbsrv7.exe/dbsrv8.exe/dbsrv9.exe等)。ASA数据库的SQL语法和结构来源于Sybase的大型数据库。而微软的SQL Server也是来源于Sybase的大型数据库,因此ASA是和微软产品最匹配的单机版数据库。构建于ASA基础上的软件几乎不需要做任何修改就可以直接在SQL Server平台上运行。(唯一的区别是:Alter Column 语法需要 用Modify 语法代替) Microsoft公司的Access:该数据库平台不需要任何支持文件,只要你的OS平台是Windows平台即可。因为该平台有不标准的SQL语法,因此用得不多,但因为它的启动性能非常快,新开发的软件才会采用它。(例如:SQL Server中转换日期的函数Convert,Access中必须用新函数Format代替,此外,Value在SQL Server中可以任意使用,而在Access中是关键字,无法使用。)ASA引擎有一个特点,就是启动时候比较慢,会生成一个日志文件(SR_EHRS.log),而且会在屏幕右下角出现一个图标(单机版:,网络版:)。ASA引擎的自动启动需要注册表中有:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI或者HKEY_CURRENT_USER\Software\ODBC\ODBC.INI下面有相应配置SR_EHRS。
如果出现左边所示图片的错误,表示数据库连接失败。原因可能有:
1、数据库文件被破坏,需要修复:这种情况下,主动执行引擎文件(dbeng7.exe/dbeng8.exe/dbeng9.exe),打开数据库文件SR_EHRS.db(或者lyzh_pfk.db等扩展名为db的文件,大小一般超过5M。):
如果这种方法能够启动,那么应该就没有问题了。
2、注册表中数据库文件所需要的ODBC配置丢失:操作系统的重新安装会使得原有的配置项(例如:SR_EHRS)丢失。这种情况下,一般重新执行以下本软件的安装即可,但要注意做好备份和恢复工作。如果软件所在目录下有扩展名为.reg的文件,那么双点该文件,导入注册表项即可。
3、因为病毒原因导致引擎文件丢失(感染而被杀毒程序隔离):只要从网上下载一个这个文件即可(dbeng7.exe/dbeng8.exe/dbeng9.exe等)。
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 38.数据描述
-
-
- 答案:
- 数据是数据管理技术处理的对象,是对客观事物及其相互联系的一种数据表示方法。
现实世界
客观事物
客观事物及联系
特性
特性定量的描述
特性描述的范围
关于客观事物特性的描述集合
表征某类客观事物
唯一标识客观事物的特性
非唯一标识客观事物的特性
选定的唯一标识客观事物的特性信息世界
实体:客观事物在信息世界中称为实体
实体模型:反映实体之间联系的称为实体模型
属性:实体具有的各种各样的属性
属性值:区分属性特征的值
域:属性所取值的范围
实体型:由某些属性组成的集合
实体集:同型的实体的集合数据世界
记录:相应于每一实体的数据
数据模型:相应于信息世界中的实体模型
数据项(字段):属性
数据项的具体取值:
数据项的取值范围:
记录型:实体型
- 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 39.数据库系统的产生
-
-
- 40.当用户机器存在MSDE7.0或以下版本时
-
-
- 41.用户机器已经存在MSDE2000时
-
-
- 42.如果数据库密码忘了,如何找回?
-
- 答案:
- 请您登陆万网会员专区-左侧主机管理-点击主机登陆名-在业务基本信息中可以直接看到数据库密码
-
- 43.MY SQL数据库宕机的原因?
-
- 答案:
- )连接方式必须是localhost,如为远程连接会导致宕机。 (2)每向数据库发出一次请求,必须有mysql.close,否则会占用资源。 (3)数据库太大。
-
- 44.MY SQL数据库的密码是否可以更改?
-
- 答案:
- MY SQL数据库的密码不可以更改;如您要修改数据库密码,需写明原因,盖上ID所有人的公章发传真或者通过在线问题提交cbss到技术部,我们可以告诉您
-
- 45.用户能否自己来备份My SQL数据库文件?
-
- 答案:
- 您可以通过phpmyadmin软件或者虚拟主机控制面板中的数据库管理模块来进行管理和备份。
-
- 46.SQL Server数据库是否提供全文检索功能?为什么?
-
-
- 47.通过ado和通过odbc调用数据库有什么不同?
-
-
- 答案:
- 1)ADO即 ActiveX Data Objects ,是微软提供的使ASP具有访问数据库的Components ADO的访问的速度更快,内存需要更小。先让我们看看如何用ASP结合connection属性创建一个数据库连接。
字符串形式连接一个SQL Server库:
代码中conn的open方法是打开一个连接用的,后边跟一个字符串。driver={SQL Server}的意思是,连接的是一个SQL Server的库,server=localhost中的localhost代表的是本机的IP,你的数据库服务器IP是多少,这里就改成相应的值,UID和PWD这两个是登录数据库服务器的用户名和密码,最后一个选项是你要操作的数据库的名字。
(2)开放资料链接 (Open Database Connectivity, ODBC) 是链接数据库的共通界面。ODBC 是由微软主导的数据库链接标准,实作环境也以微软的系统最成熟。
SQLServer:
Set con = Server.CreateObject("ADODB.Connection")
con.Open "数据源名", "登录名", "密码"
Access:
Set con = Server.CreateObject("ADODB.Connection")
con.Open "数据源名" - 此FAQ对你有帮助吗?[ 是 | 否 ] | 收藏 | 来源:Myprice价格网
- 48.数据库的空间和主机web空间是不是放在一台主机上?
-
-
- 49.ACCESS数据库实现需要注意那些事项?
-
- 答案:
- 您需要先将ACCESS数据库上传至cgi-bin目录下,如果您要注册ODBC,请在提交注册时注明数据库名称和ODBC名称。
-
- 50.如果我想更改数据库的路径及数据库密码,如何处理?
-
-