当前位置:首页 » 编程语言 » c中嵌入sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c中嵌入sql

发布时间: 2023-08-13 04:27:16

Ⅰ c怎么把数据存到sql

1. C#中怎么把数据保存到ACCESS数据库
Sqlmand是操作sql数据库的,Access用OleDbmand首先定义一个链接对象OleDbConnection conn = new OleDbConnection("[数据库连接字符串]");conn.Open(); 打开数据库连接OleDbmand cmd = new OleDbmand("[Insert/Update/Delte语句]", conn);cmd.ExecuteNonQuery(); 执行操作,如果是查询则不是用这个方法 最后别忘记关闭数据库连接和释放对象。
2. C# 如何将 图片直接存入SQL数据库中
把文件转成二进制流出入数据库

private void button2_Click(object sender, EventArgs e)

{

FileStream fs = new FileStream(textBox1.Text, FileMode.Open);

BinaryReader br = new BinaryReader(fs);

Byte[] byData = br.ReadBytes((int)fs.Length);

fs.Close();

string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";

SqlConnection myconn = new SqlConnection(conn);

myconn.Open();

string str = "insert into pro_table (pro_name,pro_file) values('测试文件',@file)";

Sqlmand mym = new Sqlmand(str, myconn);

mym.Parameters.Add("@file", SqlDbType.Binary, byData.Length);

mym.Parameters["@file"].Value = byData;

mym.ExecuteNonQuery();

myconn.Close();

}

从数据库中把二进制流读出写入还原成文件

private void button4_Click(object sender, EventArgs e)

{

string conn = "server=.;database=testDB;Uid=sa;Pwd=sa ";

string str = "select pro_file from pro_table where pro_name='测试文件' ";

SqlConnection myconn = new SqlConnection(conn);

SqlDataAdapter sda = new SqlDataAdapter(str, conn);

DataSet myds = new DataSet();

myconn.Open();

sda.Fill(myds);

myconn.Close();

Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["pro_file"];

BinaryWriter bw = new BinaryWriter(File.Open("D:\\2.rdlc",FileMode.OpenOrCreate));

bw.Write(Files);

bw.Close();

}
3. c#如何把图片存取到SQL数据库
一楼开玩笑了!!可以保存到数据库的。

首先,你的数据库里要有一个存放二进制数据的字段。然后,用一个文件选择控件,让用户选择图片。

用FileStream.Read把图片文件按照二进制读取到byte[]中,接下来,链接数据库,用sql语句,进行相应的插入操作,将数据库的二进制数据的字段赋值为byte[]就行了。以下是保存和显示的代码:private void SaveImage(string fileName) { Read the file into a byte array using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { byte[] imageData = new Byte[fs.Length]; fs.Read(imageData, 0, (int)fs.Length); using (SqlConnection conn = new SqlConnection(connectionString)) { string sql = "insert into image (imagefilename,blobdata) values (@filename,@blobdata)"; Sqlmand cmd = new Sqlmand(sql, conn); cmd.Parameters.Add("@filename",SqlDbType.Text); cmd.Parameters["@filename"].Direction = ParameterDirection.Input; cmd.Parameters.Add("@blobdata", SqlDbType.Image); cmd.Parameters["@blobdata"].Direction = ParameterDirection.Input; Store the byte array within the image field cmd.Parameters["@filename"].Value = fileName; cmd.Parameters["@blobdata"].Value = imageData; conn.Open(); if (cmd.ExecuteNonQuery() == 1) { MessageBox.Show("Done"); } } } } private void LoadImage(string fileName) { using (SqlConnection conn = new SqlConnection(connectionString)) { string sql = "select blobdata from Image where ImageFileName like @filename"; Sqlmand cmd = new Sqlmand(sql, conn); cmd.Parameters.Add("@filename", SqlDbType.Text); cmd.Parameters["@filename"].Value = fileName; conn.Open(); object objImage = cmd.ExecuteScalar(); byte[] buffer = (byte[])objImage; BinaryWriter bw = new BinaryWriter(new FileStream("C:\\abcd.", FileMode.Create)); bw.Write(buffer); bw.Close(); MemoryStream ms = new MemoryStream(buffer); Image bgImage = Image.FromStream(ms); ms.Close(); this.BackgroundImage = bgImage; } } ------------------------------------------------------------------PS:用空情报我踩踩空间,谢谢。

/kxl361。
4. 如何将文件的路径存入SQL数据库中去
建一个表:JpgFiles,其中至少包含一个列:JpgPath,用来存放绝对路径的字符串,所以这个列需要用varchar,长度假设为50,不够的话自己再增加。

string strPath = @"d:\\up";

string[] fileNames = System.IO.Directory.GetFiles(strPath);

SqlConnection Cn=new SqlConnection(这里写你的连接串);

Sqlmand Cmd=new Sqlmand("Insert JpgFiles values (@JpgPath)",Cn)

Cmd.Parameters.Add("@JpgPath",SqlDbType.VarChar,50);

foreach (string strName in fileNames)

{

Cmd.Parameters[0].Value=strName;

Cmd.ExecuteNoQuery();

}
5. 怎样将数据存入mysql数据库
MySQL命令行导出数据库:

1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录

如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin

(或者直接将windows的环境变量path中添加该目录)

2,导出数据库:mysqlmp -u 用户名 -p 数据库名 >; 导出的文件名

如我输入的命令行:mysqlmp -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)

(如果导出单张表的话在数据库名后面输入表名即可)

3、会看到文件news.sql自动生成到bin文件下

命令行导入数据库:

1,将要导入的.sql文件移至bin文件下,这样的路径比较方便

2,同上面导出的第1步

3,进入MySQL:mysql -u 用户名 -p

如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)

4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库

5,输入:mysql>use 目标数据库名

如我输入的命令行:mysql>use news;

6,导入文件:mysql>source 导入的文件名;

如我输入的命令行:mysql>source news.sql;
6. 如何把文件存入到sql server 2008
1.MDF文件

在企业管理器中

右击数据库

点击所有任务

附加数据库

点三个点选择文件

选中U盘中的MDF文件确定即可

2.BAK等备份文件:

新建空数据库,取名最好为原数据库名.

右击新建的数据库

点所有任务

点还原数据库

点从设备

点选择设备

点添加

定位到U盘中您的备份的文件

确定

点选项

点在现有数据库上强制还原

点确定

等待

完成!

另外,站长团上有产品团购,便宜有保证

Ⅱ 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
Moles,添加库文件:SQLakw32.lib,
Caw32.lib。这两个文件之间用空格分开。
2、预编译
c语言编译程序不能识别应用程序中的SQL语句,需要经过预处理程序将其转换成C语句。SQL
Server的预处理程序是nsqlprep.exe。
nsqlprep.exe在SQL
Server安装日录的MSSQL\Binn下。若SQL
Server数据库采用的是默任安装方式,则需要把binn.rar的内容拷贝到指定目录下。
Microsoft
SQL
Server
2000提供的预编译程序nsqlprep.exe,用于对嵌入式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<stdio.h>
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.pubs
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.pubs
/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语言中嵌入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数据库操作语言,能在c语言中插入sql吗需要接口吗

数据库操作一般会提供专门的接口来调用。
找到提供c本版的接口。函数中调用接口。sql语句是字符串的形式输入的在c语言中。

Ⅳ c++语句中如何嵌入SQL语句

在标准sql语句里,使用到聚集函数。如
select
no,sum(score),avg(score)
from
stu_score
那么在嵌入到C++里面时。strsql="select
no,sum(score),avg(score)
from
stu_score"这么直接用。

Ⅵ 关于C语言连接SQL数据库…

1、配置ODBC数据源。
2、使用SQL函数进行连接。
对于1、配置数据源,配置完以后就可以编程操作数据库了。
对于2、使用SQL函数进行连接,参考代码如下:

#include<windows.h>
#include<sql.h>
#include<sqlext.h>
void main()
{
HENV henv; //环境句柄
HDBC hdbc; //数据源句柄
HSTMT hstmt; //执行语句句柄
unsigned char datasource[]="数据源名称"; //即<a href="https://www..com/s?wd=ODBC&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">ODBC</a>源中设置的源名称
unsigned char user[]= "用户名"; //数据库的帐户名
unsigned char pwd[]= "密码"; //数据库的密码
unsigned char search[]="select xm from stu where xh=0";
SQLRETURN retcode; //记录各SQL函数的返回情况
// 分配环境句柄
retcode= SQLAllocEnv(&henv); // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_<a href="https://www..com/s?wd=NULL&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">NULL</a>_HANDLE, &henv);
// 设置ODBC环境版本号为3.0
retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
// 分配连接句柄
retcode= SQLAllocConnect(henv,&hdbc); // 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0);

//直接连接数据源
// 如果是windows身份验证,第二、三参数可以是<a href="https://www..com/s?wd=NULL&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">NULL</a>,也可以是任何字串
//SQL_NTS 即 "<a href="https://www..com/s?wd=Null&tn=44039180_cpr&fenlei=_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">Null</a>-Terminated String"
retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS );
//分配语句句柄
retcode= SQLAllocStmt(hdbc,&hstmt); // 等介于 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
//直接执行查询语句
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
//将数据缓冲区绑定数据库中的相应字段(i是查询结果集列号,queryData是绑定缓冲区,BUFF_LENGTH是缓冲区长度)
SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0);
//遍历结果集到相应缓冲区 queryData
SQLFetch(hstmt);
/*
*对遍历结果的相关操作,如显示等
*/
//注意释放顺序,否则会造成未知错误!
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
}

代码看上去很复杂,其实都可以直接复制。其中需要改的是数据源名称、数据库用户名、数据库密码和SQL语句。
然后就是SQLFetch后得到结果集后,如何使用的问题了。
在下面的注释部分 填写你的处理代码即可。

/*
*对遍历结果的相关操作,如显示等
*/

Ⅶ 交互式SQL与嵌入式SQL有什么不同

1、语言不同

交互式SQL是指在终端交互方式下使用的SQL语言称为交互式SQL;嵌入式SQL是一种将SQL语句直接写入C语言,COBOL,FORTRAN, Ada等编程语言的源代码中的方法。

2、使用不同

交互式SQL是在终端交互方式下使用;嵌入式SQL是嵌入在高级语言的程序中使用。

(7)c中嵌入sql扩展阅读:

提供对于嵌入式SQL的支持,需要数据库厂商除了提供DBMS之外,还必须提供一些工具。为了实现对于嵌入式SQL的支持,技术上必须解决以下4个问题:

1、宿主语言的编译器不可能识别和接受SQL文,需要解决如何将SQL的宿主语言源代码编译成可执行码;

2、宿主语言的应用程序如何与DBMS之间传递数据和消息;

3、如何把对数据的查询结果逐次赋值给宿主语言程序中的变量以供其处理;

4、数据库的数据类型与宿主语言的数据类型有时不完全对应或等价,如何解决必要的数据类型转换问题。

嵌入式SQL源码的处理流程 为了解决上述这些问题,数据库厂商需要提供一个嵌入式SQL的预编译器,把包含有嵌入式SQL文的宿主语言源码转换成纯宿主语言的代码。

这样一来,源码即可使用宿主语言对应的编译器进行编译。通常情况下,经过嵌入式SQL的预编译之后,原有的嵌入式SQL会被转换成一系列函数调用。因此,数据库厂商还需要提供一系列函数库,以确保链接器能够把代码中的函数调用与对应的实现链接起来。

Ⅷ 怎样使C语言里嵌入SQL语言急!急!

数据库会提供访问方式, 例如ODBC和API。在C语言中将SQL语句封装后传给ODBC或API由他们完成对数据库的操作。SQL语句不是直接“嵌入”到C语言里的。

具体方法要查看不同数据库的开发文档。