‘壹’ 系统会在c:\windows\system32下自动生成isql文件夹,不知是什么病毒
这个是有一个木马造成的。
你看一下,c:/windows/system32下是否有多个64K的xml文件,还有一个隐藏的wsynalib.exe,服务里还会有一个叫Windows System Active的。
处理方法,是先删除wsynalib.exe和多个64k的xml文件,再删c:\windows\system32下isql文件夹,之后修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor下AutoRun 的选项为空,然后再删掉服务Windows System Active。
‘贰’ 用c/c++编写一个sql程序,实现sql的基本功能(插入删除更新查询)
不同的数据库环境的数据库的连接时不一样的
但是语句基本一样
用一个字符串储存数据库的操作语言如:
“ CREATE tAble student
( sno char(15) primary key,
sname char(20) unique,
sage int check(sage > 18),
ssex char(10),
sdept char(20) not null
)”
然后根据环境提供的方法(函数)进行执行就行了
‘叁’ c语言中嵌入sql
很多人用到MySQL来开发一些项目,有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,Michael以前用PHP开发的多个项目中就使用了C语言编写的这类接口,然后再编译到php里面,供php脚本直接使用,这方面的话题就不多说了,下面主要说一下在Linux下如何用C语言连接MySQL数据库,并且读取里面的数据返回,同时如何进行编译。
这里的大部分代码参考了MySQL发行包里面的.c源文件,大家也可以去里面找找相关的代码,下面这段代码实现了连接到本地MySQL服务器上9tmd_bbs_utf8数据库,从数据表tbb_user中根据输入的userid取得该用户的用户名并打印输出到终端。
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#i nclude
#endif
#i nclude
#i nclude
#i nclude "mysql.h" //我的机器上该文件在/usr/local/include/mysql下
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "select username from tbb_user where userid = %d"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
MYSQL mysql,*sock; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *res; //查询结果集,结构类型
MYSQL_FIELD *fd ; //包含字段信息的结构
MYSQL_ROW row ; //存放一行查询结果的字符串数组
char qbuf[160]; //存放查询sql语句字符串
if (argc != 2) { //检查输入参数
fprintf(stderr,"usage : mysql_select \n\n");
exit(1);
}
mysql_init(&mysql);
if (!(sock = mysql_real_connect(&mysql,"localhost","dbuser","dbpwd","9tmd_bbs_utf8",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
perror("");
exit(1);
}
sprintf(qbuf,SELECT_QUERY,atoi(argv[1]));
if(mysql_query(sock,qbuf)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(sock));
exit(1);
}
if (!(res=mysql_store_result(sock))) {
fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock));
exit(1);
}
printf("number of fields returned: %d\n",mysql_num_fields(res));
while (row = mysql_fetch_row(res)) {
printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ;
puts( "query ok !\n" ) ;
}
mysql_free_result(res);
mysql_close(sock);
exit(0);
return 0; //. 为了兼容大部分的编译器加入此行
}
编译的时候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 后面两个选项可选,根据您的环境情况
运行的时候,执行下面的命令
./mysql_select 1
将返回如下结果:
number of fields returned: 1
Ther userid #1 's username is: Michael
query ok !
‘肆’ 怎么用c#代码在sql中建立新的数据库
一般建数据库都是在数据库软件中新建的,然后再连接数据库
‘伍’ 怎么将mysql数据库数据导出成.sql文件
mysql数据库转换成.sql文件步骤如下:
1.
导出SQL脚本
在原数据库服务器上,可以用phpMyAdmin工具,或者mysqlmp(mysqlmp命令位于mysql/bin/目录中)命令行,导出SQL脚本。
2.
用phpMyAdmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“DROP
DATABASE”和“DROP
TABLE”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的SQL文件保存下来。
3.用mysqlmp命令行
命令格式
mysqlmp
-u用户名
-p
数据库名
>
数据库名.sql
范例:
mysqlmp
-uroot
-p
abc
>
abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
‘陆’ 如何用C语言来模拟SQL数据库
貌似有不少开源数据库,可以DOWNLOAD一个下来参考。
例如:Berkeley DB (这个是嵌入式的,服务器式的就增加TCP/IP模块吧,另外还有,并发……)
‘柒’ 如何用C语言来模拟SQL数据库
貌似有不少开源数据库,可以DOWNLOAD一个下来参考。
例如:Berkeley
DB
(这个是嵌入式的,服务器式的就增加TCP/IP模块吧,另外还有,并发……)
‘捌’ C语言环境下如何使用动态SQL
你真是牛人呀。数据库类型那么多,有oraclemysqlDB2SQLSQLsevera。你使用的那种。
相对于来说我使用oracle多。
给你一个pro*c的操作实例吧
/ 定义符号常数
#define USERNAME "SCOTT"
#define PASSWORD "x"
#include <stdio.h>
// 说明SQLCA和ORACA
EXEC SQL INCLUDE SQLCA;
EXEC SQL INCLUDE ORACA;
// 启用ORACLE通讯区:ORACA=YES,使它能被使用
EXEC ORACLE OPTION (ORACA=YES);
// 说明SQL变量
EXEC SQL BEGIN DECLARE SECTION;
char* username=USERNAME;
char* password=PASSWORD;
VARCHAR sqlstmt[80];
int emp_number;
VARCHAR emp_name[15];
VARCHAR job[50],job1[50],job2[50];
float salary;
EXEC SQL END DECLARE SECTION;
main()
{
EXEC SQL WHENEVER SQLERROR GOTO sqlerror;
// 发生错误时,保存SQL语句至ORACA
oraca.orastxtf=ORASTFERR;
// 登录到ORACLE
EXEC SQL CONNECT :username IDENTIFIED BY :password;
printf("/nConnect to ORACLE./n");
// 构造动态SQL语句
sqlstmt.len=sprintf(sqlstmt.arr,"INSERT INTO EMP(EMPNO,ENAME,JOB,SAL)VALUES(:V1,:V2,:V3,:V4)");
// 显示SQL语句
puts(sqlstmt.arr);
// 用PREPARE语句分析当前的动态INSERT语句,语句名是S
EXEC SQL PREPARE S FROM :sqlstmt;
// 循环插表
for(;;)
{
printf("/nEnter employee number:");
scanf("%d",&emp_number);
if(emp_number==0)break;
printf("/nEnter employee name:");
scanf("%s",&emp_name.arr);
emp_name.len=strlen(emp_name.arr);
printf("/nEnter employee job:");
scanf("%s",&job.arr);
job.len=strlen(job.arr);
salary = 0; // With VC6, Missing this line will cause C Run-Time Error R6002.
printf("/nEnter salary:");
scanf("%f",&salary);
EXEC SQL EXECUTE S USING :emp_number,:emp_name,:job,:salary;
}
// 提交事务,退出ORACLE
EXEC SQL COMMIT RELEASE;
printf("/nHave a good day!/n");
exit(0);
sqlerror:
// 打印错误信息
printf("/n%.*s/n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
// 打印出错SQL语句
printf("/n/"%.*s.../"/n",oraca.orastxt.orastxtl,oraca.orastxt.orastxtc);
// 打印出错SQL语句所在行号及所在文件名
printf("on line %d of %.*s/n/n",oraca.oraslnr,
oraca.orasfnm.orasfnml,oraca.orasfnm.orasfnmc);
// 回滚事务,退出ORACLE
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL ROLLBACK RELEASE;
exit(1);
}
‘玖’ 请问怎么把mysql命令下的数据库database生成sql文件,我在文件夹里也没有找到
你退出mysql ,在终端下执行mysql -u root -p <password> --lock-all-tables <database_name> >file.sql
‘拾’ 在WINCC中如何用C语言调用SQL语言,个人经验总结求解答
解答:1)创建一个SQL文件。此文件在ISQL中创建,文件内容是所希望执行的SQL语句。2)在WinCC的Cs cript中编写程序调用此SQL文件,如以下程序所示:#include"apdefap.h"voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty){char*a="C:\\SIEMENS\\Common\\SQLANY\\ISQL-q-b-cUID=DBA;PWD=SQL;DBF=E:\\testsql\\testsqlRT.DB;DBN=CC_testsql_99-12-03_12:48:26R;READE:\\testsql\\test.sql";printf("%s\r\n",a);ProgramExecute(a);}下面是一个简单的SQL文件内容select*frompde#hd#t#test;outputtoE:\\test2.txtFORMATascii注意:文件名及路径名中不要带空格。