首页>>百科常识

sql查询时报告超时,怎么解决?

今天宠物迷的小编给各位宠物饲养爱好者分享c 执行sql超时设置的宠物知识,其中也会对sql查询时报告超时,怎么解决?(SQL查询超时)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!

sql查询时报告超时,怎么解决?

sql查询时报告超时,怎么解决?

优化表结构,优化SQL语句,但是最主要的是在你的表字段里面增加索引,不知道你们用什么数据库,也可以查询一下这种数据库的书籍或者文档,应该呦比较实用的方法.

SQL 数据库连接服务器失败是什么原因?

一、mysqld 进程没有正常运行遇到这种情况首先到服务器上看看 mysqld 进程是否活着,采用的命令:
二、客户端不能和进程 mysqld 通信如果 MySQL 服务器上的 mysqld 进程运行正常,我们再看看客户端能不能和 mysqld 进行通信,使用下面的命令进行网络连通的测试:telnet localhost 3306
如果本地能通,再到客户端的机器上把 localhost 换成 MySQL 服务器的 ip 地址进行测试。如果不能通,通常有两种原因,一种原因是 OS 或网络的问题,或者是防火墙;另一种原因是 mysqld 自身根本没有侦听客户端的连接请求, mysqld 启动后对于客户端的侦听是分三种情况。
第一种情况
是使用参数 --skip-networking 跳过侦听客户端的网络连接,用下面的命令我们可以看到 MySQL 根本没有侦听 3306 端口。
第二种情况
使用参数 --bind-address 后面增加对客户端访问 IP 地址的限制,例如只侦听本地的连接
三、账户密码的问题最后一种情况是账户密码的问题,应付这种情况我们有个有力的工具就是查看 MySQL 的 error log, error log 记载信息的详细程度上由参数 --log-error-verbosity 进行控制的

用c语言怎样连接sql数据库?

SQL 有API的,包含头文件和连接使用相应的.lib就可以

~
~
~

C语言中使用嵌入式sql

嵌入式SQL程序的VC+SQL server 2000实现的环境配置

嵌入SQL的C应用程序具体到VC++6.0, SQL Server2000 下调试可分为五步:1、环境初始化;2、预编译;3、编译;4、连接;5、运行。下面就其中重要的的操作方法给以详细说明。
1、环境初始化
(1) SQL Server2000为其嵌入式SQL提供了一此特殊的接口;默认的安装方式没有安装这此接口;因此,需要把devtools.rar解压到SQLServer的系统日录下(即文件夹devtools中的所有文件);如果操作系统安装在C盘,则SQL Server的系统目录是C:\Program Files\Microsoft SQL Server。(或 在安装Microsoft SQL Server 2000时选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。)
( 2)初始化Visual C++ 6.0编译器环境。在命令行方式下运行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。
(3)初始化SQL Server的预编译环境。在命令行方式下运行文件:\Devtools\samples\esqlc\setenv.bat。
( 4) VC++6.0环境配置。具体配置分为如下三步[:
①Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\devtools\include。将SQL server自带的用于数据库开发的头文件包含到工程环境中。
②Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\devtools\x861ib。将开发用到的包包含到工程中。
③project->Settings->Link->Object/Library Modules,添加库文件:SQLakw32.lib, Caw32.lib。这两个文件之间用空格分开。

2、预编译
C语言编译程序不能识别应用程序中的SQL语句,需要经过预处理程序将其转换成C语句。SQL Server的预处理程序是nsqlprep****。 nsqlprep****在SQL Server安装日录的MSSQL\Binn下。若SQL Server数据库采用的是默任安装方式,则需要把binn.rar的内容拷贝到指定目录下。

Microsoft SQL Server 2000提供的预编译程序nsqlprep****,用于对嵌入式SQL程序进行预编译处理,生成C语言源程序.实际上就是将嵌入式SQL程序中的嵌入式SQL语句替换为对运行时库文件Sqlakw32. dll的函数调用,接着运行时库文件调用动态连接库Ntwdblib. dll通过网络来存取Microsoft SQL Server 2000数据库服务器.
预编译程序nsqlprep的常用语法为:
nsqlprep ESQL_File /SQLACCESS /DB server_name.database_name /PASS login.password
其中ESQL_File是要预编译的嵌入式SQL程序;/SQLACCESS通知nsqlprep自动地为嵌入式SQL程序中的静态SQL语句创建相应的存储过程;/DB server_name.database_name指明要连接的服务器以及数据库名称;/PASS login.password给出登录名及相应的口令.

下面的程序demo.sqc实现了从数据库服务器hushaobo的数据库pubs中的authors表中读取au_lname为white的人对应的 au_fname 值,并保存到变量first_name 中显示出来。(连接数据库的用户为sa,对应密码为1982)

#include
void main()
{
EXEC SQL BEGIN DECLARE SECTION;
char first_name[40];
char last_name[]="White";
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO hushaobo****s
USER sa.1982;
EXEC SQL SELECT au_fname INTO :first_name from authors WHERE au_lname = :last_name;
EXEC SQL DISCONNECT ALL;
printf("first name: %s \n",first_name);
}

在命令行下运行:nsqlprep demo.sqc /SQLACCESS /DB hushaobo****s /PASS sa.1982
则生成demo.c,将该文件添加到VC工程中编译即可。

3、编译,连接与运行
在VC++6.0中创建一个 "WIN32 Console Application"的Proiect,然后将预编译生成的c文件加入Proiect,编译连接即可生成访问SQL Server的可执行程序。 Visual C++ 6.0进行编译连接时需要用到动态链接库SQLakw32.d11与SQLaiw32.d11;尽管这两个文件已经随同binn.rar被拷贝到SQLServer安装目录的MSSQL\Binn文件夹下,但仍然需要把它们的路径加到系统路径变量中,以使得程序运行时能找到它们,具体添加方法如下:
方法1:把这两个文件拷贝到操作系统目录下的system32子目录中。
方法2:我的电脑->属性->高级->环境变量->path->编辑,在变量值中加入路径值;新路径与已有路径间用;间隔。

注意调适程序时,文件名中不要包含cursor,否则可能会出错。

c语言用vc连接sql server连接成功但插入数据不成功

楼主 你程序有很多缺点,第一你并没有判断数据库是否连接成功
第二插入的话 最好要提交函数 SQLCOMMIT什么的。

SQL Server常用到的几个设置选项是什么?

1. SET DEADLOCK_PRIORITY 说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。 语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var } 参数:LOW 指定当前会话为首选死锁牺牲品。Microsoft® SQL Server™ 自动回滚死锁牺牲品的事务,并给客户端应用程序返回 1205 号死锁错误信息。 NORMAL 指定会话返回到默认的死锁处理方法。 @deadlock_var 是指定死锁处理方法的字符变量。如果指定 LOW,则 @deadlock_var 为 3;如果指定 NORMAL,则 @deadlock_var 为 6。 注释:SET DEADLOCK_PRIORITY 的设置是在执行或运行时设置,而不是在分析时设置。 权限:SET DEADLOCK_PRIORITY 权限默认授予所有用户。 2. SET LOCK_TIMEOUT 说明:指定语句等待锁释放的毫秒数。 语法:SET LOCK_TIMEOUT timeout_period 参数:timeout_period 是在 Microsoft® SQL Server™ 返回锁定错误前经过的毫秒数。值为 -1(默认值)时表示没有超时期限(即无限期等待)。 当锁等待超过超时值时,将返回错误。值为 0 时表示根本不等待,并且一遇到锁就返回信息。 注释:在连接开始时,该设置的值为 -1。设置更改后,新设置在其余的连接时间里一直有效。 SET LOCK_TIMEOUT 的设置是在执行或运行时设置,而不是在分析时设置。 READPAST 锁定提示为该 SET 选项提供了另一种方式。 权限:SET LOCK_TIMEOUT 权限默认授予所有用户。 示例:下例将锁超时期限设置为 1,800 毫秒。 SET LOCK_TIMEOUT 1800 GO

如何用Eclipse连接MySQL数据库

使用Java提供的JDBC技术
附上一段常用的JDBC连接MySQL的代码

package DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBC {

private static final String DRIVERCLASS = "com.mysql.jdbc.Driver";
// private static final String URL = "jdbc:mysql://localhost:3306/javademo";
// private static final String USERNAME = "root";
// private static final String PASSWORD = "";

private static final String url ="jdbc:mysql://localhost:3306/EIMS?"
+ "user=root&password=&useUnicode=true&characterEncoding=UTF8";
//通过useUnicode=true&characterEncoding=UTF8 避免中文字符乱码

private static final ThreadLocal threadLocal = new ThreadLocal();

static {// 通过静态方法加载数据库驱动
try {
Class.forName(DRIVERCLASS);// 加载数据库驱动
System.out.println("成功加载MySQL驱动程序");
} catch (Exception e) {
e.printStackTrace();
}
}

public static Connection getConnection() {// 创建数据库连接的方法
Connection conn = threadLocal.get();// 从线程中获得数据库连接

if (conn == null) {// 没有可用的数据库连接
try {
// conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);// 创建新的数据库连接
conn = DriverManager.getConnection(url);
threadLocal.set(conn);// 将数据库连接保存到线程中
System.out.println("创建数据库连接成功!!");
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null){
System.out.println("数据库连接成功!!");
}

return conn;
}

public static boolean closeConnection() {// 关闭数据库连接的方法
boolean isClosed = true;
Connection conn = threadLocal.get();// 从线程中获得数据库连接
threadLocal.set(null);// 清空线程中的数据库连接
if (conn != null) {// 数据库连接可用
try {
conn.close();// 关闭数据库连接
} catch (SQLException e) {
isClosed = false;
e.printStackTrace();
}
}
if (conn == null){
System.out.println("断开连接成功!!");
}
else {
System.out.println("失败!!");
}
return isClosed;
}

}

如何用c语言调用MS-SQL 数据库的东西?

没人回答

c#执行sql脚本的问题

System.Console.WriteLine("请输入路径(例'c://cmd.sql')");//输入你要执行文件的目录
string path=System.Console.ReadLine();
string sql=bs.sql(path);int i = 0;SqlConnection con = new SqlConnection("server=.;database=oracle9i;user id=sa;password=123");//可以根据你自己的机子设置的数据库,用户名,密码而定
SqlCommand com = new SqlCommand(sql,con);
con.Open();
for (; i < sql.Length; i++){if (sql.Substring(i, 0) != " ")break;}if(sql.Substring(i,6)=="select"){SqlDataReader dr;
dr=com.ExecuteReader();
while(dr.Read()){System.Console.WriteLine(dr[0].ToString());}}else{com.ExecuteNonQuery();
System.Console.WriteLine("操作成功!

100分求解该sql语句的翻译

*******************
补充:
我调整了一下你的sql文格式,加了一些注释。
因为下面显示不下,所以有点乱,你考出来到文件里面再看。
*******************

select r.* --查询room中所有字段
from room r inner join category cat on r.cid = cat.id --从room和category的内连接结果集中,并且这两个表被分别重命名为r和cat
where cat***de=? --category表的code=?
and r.status=? --room表的status=?
and r.id not in --room表的id不在下面的结果集中
(
select m.roomid --下面结果集的roomid(注意看下面的结果集被命名为了m)
from(
select sum(dtl.residetype) as cnt, --subscription_dtl的residetype字段和,并重命名为cnt
dtl.rid as roomid, --subscription_dtl的rid字段,并重命名为roomid
rsd.residedate --reisde的residedate字段
from reisde rsd inner from subscription_dtl dtl on rsd.dtlid=dtl.id --两个表的内连接结果
where rsd.residedate between :startDate and :endDate --reisde的residedate在:startDate和:endDate之间
group by dtl.rid, rsd.residedate --按照subscription_dtl的rid和reisde的residedate字段 分组
having cnt >=2 --在分组后的结果集中过滤出 cnt>0 的结果,其他的全部要
)m --这里重命名的。
)
;

---
以上,希望对你有所帮助。

本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“sql查询时报告超时,怎么解决?