『壹』 系統會在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注意:文件名及路徑名中不要帶空格。