搜档网
当前位置:搜档网 › QT中怎样连接MYsql数据库,远程连接数据库等

QT中怎样连接MYsql数据库,远程连接数据库等

QT中怎样连接MYsql数据库,远程连接数据库等
QT中怎样连接MYsql数据库,远程连接数据库等

1: windows下登陆mysql命令行,(1)进入cmd (2)cd mysql安装路径/mysqlserver5.6/bin

(3) 使用命令mysql -u root -p 然后根据提示输入密码进入命令行

select user(); //显示当前用户

2:在同一台电脑上利用Qt访问数据库

(1)显示当前电脑上安装的数据库驱动

QStringList drivers = QSqlDatabase::drivers();

foreach(QString driver, drivers)

qDebug() <<"/t" << driver;

(2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/对 QMYSQL进行操作,本函数

有第二个参数连接名

db.setHostName("localhost");//或127.0.0.1 本主机

db.setPort(3306);

db.setDatabaseName("example"); //对数据库example进行操作

db.setUserName("wangxuetao"); //wangxuetao是一个对example数据库有操作权限的账户 db.setPassword("3791948");

于是mysql中增加一个账户可使用

Grant all previliges on *.* to ‘wangxuetao’@’localhost’identified by ‘3791948’ with grant option;

Flush privileges; //更新

(3)db.open() 函数可由于检测数据库是否连接成功

cout<

3, 在其他没有安装过mysql的客户端电脑上远程访问 mysql 数据库。

(1)使数据库可以远程访问,新增账号

Grant all privileges on *.* to ‘wangxuetao’@’%’identified by ‘3791948’with grant option;

Flush privileges; //更新 @和‘%’之间不要有空格

这样在任何电脑上都可以使用账号wangxuetao进行远程连接数据库。

(2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/对QMYSQL进行操作,本函数

有第二个参数连接名

db.setHostName("192.168.1.124");//连接server主机的IP地址

db.setPort(3306);

db.setDatabaseName("example"); //对数据库example进行操作

db.setUserName("wangxuetao"); //wangxuetao是一个对example数据库有操作权限的账户 db.setPassword("3791948");

开始操作...................................

(3)在客户端主机电脑上的设置,客户端程序文件夹内新建子文件夹 /sqldrivers 在这个文件夹内

放入 Qt 的mysql驱动

在客户端程序文件夹下放入,mysql 数据库驱动文件

Libmysql.dll

select user,host,password from https://www.sodocs.net/doc/cc7521997.html,er; //显示当前数据库的所有用户select database(); //显示当前数据库

在Qt中执行mysql语句:

QSqlQuery query;

query.exec(“select xx from xxx where xx is xxx”);

1.int result = this->DBConnection();

2. m_sqlquery = new QSqlQuery("",m_sqldb);//statement 1:connect db with sql

query

3.if(result == R_OK)

4. {

5. result = m_sqlquery->exec("INSERT INTO children(fname,age) VALUES('A

nn2',13)");

6.if(!result)

7. qDebug()<<" [OK] "<<"EXEC successed";

8. m_sqlquery->exec("SELECT * FROM children c LIMIT 0,1000");

9.while(m_sqlquery->next())

10. {

11. qDebug()<value(0).toString()<value(1).

toString();

12. }

13. }

mysql远程连接授权命令

新使用MySQL,说起来是个简单的事情,但是却费了些周折: 1、登陆服务器端,进入命令行,windows cmd; 2、设置用户、密码让指定的IP访问:mysql -u root -p 或安装的快捷方式进入:MySQL Command Line Client,使用grant命令: grant 权限1,权限2,…权限n on 数据库名称.表名称to 用户名@用户地址identified by '连接口令'; 例子: mysql>grant select,insert,update,delete,create,drop on mydb.mytable to lzpddd@192.168.1.88 identified by 'mypassword'; 给来自192.168.1.88的用户lzpddd分配可对数据库mydb的mytable表进行select,insert,update,delete,create,drop等操作的权 限,并设定口令为'mypassword'; mysql>grant all privileges on *.* to lzpddd@192.168.1.88 identified by 'mypassword'; 给来自192.168.1.88的用户lzpddd分配可对所有数据库的所有表进行所有操作的权限限,并设定口令为'mypassword'; mysql>grant all privileges on *.* to lzpddd@'%' identified by 'mypassword'; 给来自任何IP地址的用户lzpddd分配可对所有数据库的所有表进行所有操作的权限限,并设定口令为'mypassword'; 3、关闭服务器端防火墙或者开放3306端口(很重要); 4、客户端连接: 进入命令行,windows cmd,连接: mysql -u 用户名-p密码-h 服务器IP地址-P 服务器端MySQL端口号-D 数据库名 注意: (1)服务器端口标志-P一定要大些以区别于用户-p,如果直接连接数据库标志-D也要大写; (2)如果要直接输入密码-p后面不能留有空格如-pmypassword;

MYSQL远程连接远程数据库表

MYSQL 链接远程的链接表(类似ORACLE的DBLINK) MYSQL 链接远程的链接表(类似ORACLE的DBLINK) 远程表: CREATE TABLE IF NOTEXISTS `category` ( `id` int(11) NOTNULLAUTO_INCREMENT, `category_id` int(11) NOTNULL, `name` varchar(20) NOTNULL, PRIMARYKEY(`id`) ) ENGINE=MYSAIM DEFAULT CHARSET=utf8; 本地建立链接表(映射10.10.10.133 app库的category表)的时候: CREATE TABLE IF NOT EXISTS `remotecategory` ( `id` int(11) NOT NULL AUTO_INCREMENT, `category_id` int(11) NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) )ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://user:passwod@10.10.10.133:3306/app/category'; 注:表的结构一模一样,就是引擎不同,看红字FEDERATED 需要在 my.ini(WINDOWS) 或者my.conf(LINUX)的 [mysqld] 下面重新起一行, 在这一行加上federated 来激活FEDERATED 即可 FEDERATED是其中一个专门针对远程数据库的实现。一般情况下在本地数据库中建表会在数据库目录中生成相应的表定义文件,并同时生成相应的数据文件 (mysql 5.0.5以上的版本)

QT操作数据库 学习基础

QT操作数据库学习基础 QT操作数据库学习基础是本文要介绍的内容,对于数据库相信友们有所接触,那么先来看本文。 一.数据库操作 1.MySql驱动编译 在windows系统中,我们在mingw,MySql5和Qt4的环境中编译MySql驱动主要有以下几个步骤: (1)下载 https://www.sodocs.net/doc/cc7521997.html,/download/mingw-utils-0.3.tar.gz ;(2)将mingw-utils-0.3.tar.gz解压缩,将bin目录下的reimp 工具复制到mingw目录下的bin 里,如果Dev-C++就复制到C:\Dev-Cpp\bin目录下 (3)将MySql安装目录下的include和lib目录拷贝到没有空格的路径下,比如C: \mysql下; (4)打开Qt Command Prompt,分别执行以下命令: cd c:\mysql\lib\opt reimp -d libmysql.lib dlltool -k -d libmysql.def -l libmysql.a 这样在c:\mysql\lib\opt目录下就会生成一个libmysql.a 文件; (5)接下来执行以下命令:cd %QTDIR%\src\plugins\sqldrivers\mysql qmake -o Makefile

"INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C :\MYSQL\LIB\OPT\LIBMYSQL.a" mysql.pro 找到%QTDIR%\src\plugins\sqldrivers\mysql\下的Makefile.release 和Makefile.debug文件,去掉-llibmysql 项再make编译,这下便会在%QTDIR%\plugins\sqldrivers目录下面生成libqsqlmysql.a, qsqlmysql.dll这两个文件,然后在程式的.pro文件中添加QT+=sql并在程式开头包含#include 就能操作数据库了。 2.完全解决数据库存储中文和Qt程式显示数据库中文及中文字符串的问题 (1)数据库和表及表里的字符相关字段(varchar, char, text 等)都要使用gbk_chinese_ci这种方式,不这样做也能,但这样做,会省非常多麻烦。 (2)重新编译Qt的MySQL驱动,需要修改src / sql / drivers / mysql / qsql_mysql.cpp文件。要修改的部分如下:第一百零八行的codec函数static QTextCodec* codec(MYSQL* mysql) { return QTextCodec::codecForName("GBK");//增加部分#if MYSQL_VERSION_ID >= 32321 QTextCodec* heuristicCodec = QTextCodec :: codecForName ( mysql_character_set_name ( mysql ) ); if (heuristicCodec) return heuristicCodec; #endif

c语言连接数据库mysql

下面是C语言连接mysql数据库简单例子: 编译方式: gcc -I /usr/local/mysql/include/ -L /usr/local/mysql/lib/ -l mysqlclient select.c -o select 源码: #include #include #include #include "/usr/local/mysql/include/mysql.h" int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "192.168.1.99"; char *user = "test"; char *password = "test_passwd"; char *database = "count"; double tvalue1 = 0.93; char st[123]; time_t s; s = time((time_t*)NULL ); sprintf(st, "%d", s); conn = mysql_init(NULL); if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } char sql[1024]="SELECT * FROM money_change WHERE c_datetime <= "; strcat(sql,st); strcat(sql,"-3000 AND c_datetime > "); strcat(sql,st); strcat(sql,"-5000 AND c_type = 0 UNION ALL SELECT * FROM money_change WHERE

Oracle数据库远程连接设置的四种方法

Oracle数据库远程连接设置的四种方法 Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。 第一种情况: 若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变 量%ORACLE_HOME%/network/admin/是否设置。 第二种情况: 本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。 这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例: 1、在安装oracle服务器的机器上搜索下列文件: ?oci.dll ?ocijdbc10.dll ?ociw32.dll ?orannzsbb10.dll ?oraocci10.dll ?oraociei10.dll ?sqlnet.ora ?tnsnames.ora ?classes12.jar ?ojdbc14.jar 把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。 2、配置tnsnames.ora,修改其中的数据库连接串。 1.oracledata = 2. 3.(DESCRIPTION = 4. 5.(ADDRESS_LIST = 6. 7.(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) 8. 9.(CONNECT_DATA =

qt数据库用户接口

1.QSqlQueryModel *model = new QSqlQueryModel(); 2.model->setQuery("SELECT table_https://www.sodocs.net/doc/cc7521997.html,er_id, table_group.group_name FROM table_group," 3."table_user WHERE table_group.group_id=table_user.group_id"); 4. 5.for(int i = 0; i < model->rowCount(); i++) 6.{ 7.qDebug() << model->record(i).value("user_id").toString(); 8.qDebug() << model->record(i).value("group_name").toString(); 9.} 1.sqlite3可以有多种多表查询方法,比如 select (select * from table2) from table1 where xxx=xxx;

1.select table1.abc from table1,table2 where table1.xxx=table 2.xxx; 1.select table1.abc from table1 inner join table2 on table1.xxx=table 2.xxx; 1.QSqlTableModel tablemodel; //单表查询 2.tablemodel.setTable("table_user"); //绑定表 3.tablemodel.setFilter("group_id=1"); //设置查询条件 4.tablemodel.select(); //查询 5.for(int i = 0; i < tablemodel.rowCount(); i++) 6.{ 7.qDebug() << tablemodel.record(i).value(1).toString(); 8.}

SQL2000数据库实现远程连接

SQL 2000数据库怎么实现远程连接 SQL Server 2000无论是个人版、企业版还是标准版,只要细版本在8.00.1760以下,均不提供远程数据库连接,即使服务器端工具和客户端工具的设置均有TCP/IP设置和数据库连接属性也设置了RPC远程连接,仍然不能实现远程连接。该怎么解决呢? 解决方案如下: 首先,需要打SP4补丁,该补丁包含了以前sp1、2、3的补丁,安装此补丁后一般要重新启动计算机,再进行远程连接就可以了,如再企业管理器可远程注册服务器、查询分析可连接远程服务器、ODBC可连接远程服务器。 要点: 1.确认服务器端SQL服务端口号是否为:1433 2.如果不是1433,配置客户端 3.建立服务器端登录帐号,确保角色及管理数据库 一、查看服务器端情况 1. 看ping 服务器IP能否ping通。 这个实际上是看和远程sql server 服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 服务器的IP拼写正确。 2. 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是sql server 的对于Tcp/IP的默认侦听端口。如果有问题,通常这一步会出问题。通常的提示是“……无法打开连接,连接失败"。 如果这一步有问题,应该检查以下选项。 1) 检查远程服务器是否启动了sql server 服务。如果没有,则启动。 2) 检查sql server服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协议。检查方法是,在服务器上打开开始菜单->程序->Microsoft SQL Server->服务器网络实用工具,看启用的协议里是否有tcp/ip协议,如果没有,则启用它。 3) 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框没有勾上。 事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须与服务器配置的端口号保持一致。如果隐藏sql server服务器复选框被勾选,则意味着客户端无法通过枚举服务器来看到这台服务器,起到了保护的作用,但不影响连接,但是Tcp/ip协议的默认端口将被隐式修改为2433,在客户端连接时必须作相应的改变(具体方式见二:设置客户端网络实用工具)。

QT数据库操作

二十一、Qt数据库(一)简介(原创) 2010-03-02 12:03 声明:本文原创于yafeilinux的百度博客,https://www.sodocs.net/doc/cc7521997.html,/yafeilinux 转载请注明出处。 从今天开始我们学习Qt数据库编程的内容。 先说明:我们以后使用现在最新的基于Qt 4.6.2的Qt Creator 1.3.1 Windows 版本,该版本是2010年2月17日发布的。 数据库几乎是每个较大的软件所必须应用的,而在Qt中也使用QtSql模块实现了对数据库的完美支持。我们在Qt Creator的帮助中查找QtSql Module,其内容如下图: 可以看到这个模块是一组类的集合,使用这个模块我们需要加入头文件 #include ,而在工程文件中需要加入一行代码:QT += sql 这里每个类的作用在后面都有简单的介绍,你也可以进入其中查看其详细内容。下面我们先简单的说一下QSqlDatabase类和QSqlQuery类。 QSqlDatabase类实现了数据库连接的操作,现在Qt支持的数据库类型有如下几种:

而现在我们使用的免费的Qt只提供了SQLite和ODBC数据库的驱动(我们可以在Qt Creator安装目录下的qt\plugins\sqldrivers文件夹下查看),而其他数据库的驱动需要我们自己添加。SQLite是一个小巧的嵌入式数据库,关于它的介绍你可以自己在网上查找。 QSqlQuery类用来执行SQL语句。(关于SQL语句:在我的教程中只会出现很简单的SQL语句,你没有相关知识也可以看懂,但是如果想进行深入学习,就需要自己学习相关知识了。) 下面我们就先利用这两个类来实现最简单的数据库程序,其他的类我们会在以后的教程中逐个学习到。 1.新建Qt控制台工程。

开启mysql的远程连接的方法

开启mysql的远程连接的方法 web与mysql数据库分离开来是一个不错的选择,避免因为大量的数据库查询占用CPU而使web资源不足,同时可以使web 服务器的资源尽最大的提供浏览服务,而数据库服务器单独的只处理数据库事物。 适用范围:拥有独立主机权限。 硬件配置:两台服务器,至于具体服务器硬件配置就不在本文范围内了。其中:A为web服务器(假设ip为:192.192.192.192)、B为mysql数据服务器(假设ip为:168.168.168.168) 着手动作: 1.在web服务器A配置好web服务。假设web服务器的IP为:19 2.192.192.192 2.在数据库服务器B安装好mysql服务。 3.现在新版的mysql一般默认都不允许远程连接的。需要建立远程连接账号才可以。 以命令行方式使用root账号进入mysql。 mysql -uroot -ppass

选择进入mysql数据库 use `mysql`; 查看所有存在的账号和地址。 SELECT `Host`,`User` FROM `user`; 比如我的就是: +-----------+------+ | Host | User | +-----------+------+ | localhost | | | localhost | pma | | localhost | root | +-----------+------+ 3 rows in set (0.00 sec) 也就是说,存在三个只允许本地连接的(localhost)账号,分别为root、pma、空用户。 现在决定让root具有上面那个web服务器A的远程链接的权限,

Oracle sqlplus远程连接数据库

Oracle sqlplus远程连接数据库 sqlplus username/password@yunSID_192.168.1.5 公司使用linux开发机进行程序开发时,由于开发用Oracle数据库是由日方提供,所以经常使用sqlplus连接到远程数据库上进行开发,例如: sqlplus username/password@servicename 于是想,用我的两台电脑双机互联试一试,也玩个“远程连接”。实验如下: 首先在我的台式机上安装了Oracle9i的数据库管理系统,并建立了一个数据库实例:xy 然后为该实例新增了一个用户,用户名和密码都是kxy01。启动实例xy后,在台式机上,直接在cmd环境键入:sqlplus kxy01/kxy01@xy就可以连接上数据库,呵呵,想来本地连接都是不费吹灰之力就行的。 之后,在我的笔记本上安装了Oracle9i的Client工具。然后试着直接用上述命令访问,显然是不行的,系统返回无法解析服务名的错误信息。 要实现连接到远程数据库,先了解一下相关知识吧,查了一下书。原来,Oracle 数据库的远程连接是通过Oracle Net实现的。在服务器和客户端都必须运行有配置正确的Oracle Net才可以。不管使用的配置和配置工具如何,都应该告诉Oracle Net怎样找到远程数据库。 要怎么配置Oracle Net呢。点开Oracle的开始菜单,寻找相关的工具,发现一个名为: Net Configuration Assitant的工具,应该就是它了。启动之: Net Configuration Assitant共提供了4个配置功能: 监听程序配置, 命名方法配置, 本地网络服务名配置 目录使用配置。 要从远程位置连接Oracle数据库,必须配置Oracle网络监听程序。Net Configuration Assitant可以用于此项配置工作,启动后选择监听程序配置,一路下一步即可。之后点开命名方法配置,系统已经默认提供了三种,其他两种也不太认识,干脆不改了,直接点后退,回到主菜单。 主菜单中,第三项是本地网络服务名配置。要通过网络访问Oracle数据库或其他服务,要使用网络服务名,该项配置允许使用由本地命名解析的网络服务名。而第四项为目录使用配置,点开一看,居然要选择目录服务器,我这一共就两台电脑,要什么目录服务,看来第四项不适合本实验了,显然,关键配置就在第三项:本地网络服务名配置。 将其点开,选择“添加”网络服务名操作,然后会询问你希望访问何种版本的Oracle 数据库服务。按照常理,我装的是Oracle9i自然应该选择第一个(Oracle8i或更高版本数据库服务),可经过实践证明,只有选择第二个(Oracle8i发行版8.0数据库或服务)才能正常实现远程连接,不明其中原因,也就只有选第二个拉。 然后输入我的数据库实例SID:xy 然后选择网络协议,双机互联应该选择TCP吧,再然后填写数据库所在的主机名:kxyhome。端口号采用默认的1521。 点击下一步,进行数据库连接的测试,测试成功后进行网络服务名的填写,这个

MySQL数据库远程连接开启方法

MySQL数据库远程连接开启方法 发布:dxy 字体:[增加减小] 类型:转载 有时候需要远程连接mysql数据库,默认是不可以的,大家可以参考下面的方法,解决下。 第一中方法:比较详细 以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是 MySQL 数据库开启远程连接的时机操作流程。 1、d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL>select host, user from user; 2、MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypas sword' WITH GRANT OPTION 予任何主机访问数据的权限 3、MySQL>FLUSH PRIVILEGES 修改生效

4、MySQL>EXIT 退出MySQL服务器 这样就可以在其它任何的主机上以root身份登录啦!

以上的相关内容就是对MySQL 数据库开启远程连接的介绍,望你能有所收获。 第二种方法: 1、在控制台执行mysql -u root -p mysql,系统提示输入数据库root用户的密码,输入完

成后即进入mysql控制台,这个命令的第一个mysql是执行命令,第二个mysql是系统数据名称,不一样的。 2、在mysql控制台执行GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDE NTIFIED BY ‘MyPassword' WITH GRANT OPTION; 3、在mysql控制台执行命令中的‘root'@'%' 可以这样理解: root是用户名,%是主机名或 IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的I P地址;'MyPassword'是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,GRANT具体操作详情见:http://dev.mysql.c om/doc/refman/5.1/en/grant.html 4、不放心的话可以在mysql控制台执行select host, user from user; 检查一下用户表里 的内容 您可能感兴趣的文章: ?mysql 远程连接数据库的方法集合 ?PHP远程连接MYSQL数据库非常慢的解决方法 ?解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)

软件工程师的大学规划

软件工程师的大学规划 想做软件工程师的技术上需要学习计算机组成与操作系统原理、开发语言、数据库和网络等四大块的知识。实际中的开发则一般用到开发语言和数据库两部份,后面我也会对这两块着重进行介绍。 由于我们开发的管理系统基本上都是C/S模式,所以在我们对网络这部分的知识也要掌握。至少应学会如何架设一个局域网。 企业管理软件与互联网产品,基本上都是应用型的产品,不像操作系统、办公软件等基础类软件涉及大量底层技术,这也是信管电商专业的计算机方面的学习要求整体上没有计算机科学与技术、软件工程等专业高的一个原因。像计算机组成原理、操作系统原理、计算机网络、汇编语言和编译原理等课程,如果仅仅是想从事上面两种产品的开发的话,可以不用钻研得太深入。当然,这并不代表可以忽略或轻视,对所有想从事开发的人来说,这些其实都是基础,基础不打好,以后想走得更远就会很难,例如想成为架构师基本上不可能。 我们学校信管电商两个专业是不学汇编语言和编译原理这两门课的,同时在实际的开发中,基本上也用不到,但对于搞系统开发的我们来说,了解一下也是需要的,但不用太深。 基础性的东西,学习的难度比较大,好在这些课程一般都安排在大一、大二,大家有充裕的时间去钻研。 在开发语言技术当中,我们接触得最早的就是C语言和数据结构。现在实际开发当中基本不会用到C语言,但在学习C语言过程中所学习的常量、变量、运算符、表达式、条件/循环语句、数据类型、函数等概念是一切开发语言的骨架。学了C语言后,再结合数据结构这一门课程(这门课程也穿插了一些算法的讲解),基本上就掌握了程序开发的核心,书上常说的程序=数据结构+算法,就是这个道理。当然,这两门课程许多时候面对的都是很抽像的数学模型,学习的过程中我们就可以通过研究书本上的代码例子来理解,并尝试着将看过的例子自己用代码写出来。到了课程快结束时,老师会布置课程设计,任务一般是写一个像推箱子游戏这样的比较综合的小软件,这个时候,如果自己不会的,就要找别人的代码来研究,然后尝试着自己再写一次。开发技术基本都这样,单靠看是掌握不了的,还得动手,动手的过程中可以通过研究别人的代码来获得一种思路。 我们学校08、09级的信管、电商两个专业都是在大一第二学期学习C语言,并且相对来说信管的要求会高一些。由于我们系的发展发向是偏向管理系统(从专业名称也可知),所以我们的课程设计基本上都是管理系统,很少会做推箱子、贪吃蛇类的小游戏软件。而在课程设计的过程中同于需要我们自己动手敲写代码(只复制别人代码的人需要注意了!),所以是我们真正能学习到C语言的时候,我们的编程思维和编程习惯也是在这时开始培养起来的,因此一定要重视第一次的课程设计。数据结构电商是大二第一学期学习,信管是大二第二学期学习。学习这门课程一定需要有C语言的基础,不然学起来会相当费力。电商专业的学生会好一点,毕竟上一个学习才学了C语言,不会遗忘得太多,而信管专业的人就要注意了,由于大二第一学期基本上只学数学类的课程,没什么机会再次接触编程,所以要求信管的学生,在大二第一学期最后自已有空的时候复习一下C语言,或者先学习一些别的较先进的编程语言,如

sql 2005 error 40远程连接错误

sql 2005 error 40远程连接错误 数据库 2010-01-22 19:43:38 阅读432 评论0 字号:大中小 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息。在使用任何程序连接到 SQL Server 时都可能会发生此问题。例如,在使用 SQLCMD 实用工具连接到 SQL Server 时收到以下错误消息: Sqlcmd:错误:Microsoft SQL Native Client:建立到服务器的连接时发生错误。连接到 SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。 如果没有将 SQL Server 2005 配置为接受远程连接,则可能会发生此问题。默认情况下,SQL Server 2005 Express Edition 和 SQL Server 2005 Developer Edition 不允许远程连接。若要配置 SQL Server 2005 以允许远程连接,请完成以下所有步骤: ?在您要从远程计算机连接到的 SQL Server 实例上启用远程连接。 ?打开 SQL Server Browser 服务。 ?配置防火墙以允许与 SQL Server 和 SQL Server Browser 服务相关的网络通讯。 本文介绍如何完成这些步骤中的每一步。 更多信息 若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配... 若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配置器工具。在安装 SQL Server 2005 时会安装外围应用配置器工具。 为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接 必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作: 1.单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和 “配置工具”,然后单击“SQL Server 外围应用配置器”。

c语言连接数据库

使用C语言操作MySQL数据库 1.连接数据库。 从C语言连接MySQL数据库包含两个步骤: a)初始化连接句柄结构; b)实际创建连接。 首先使用mysql_init初始化连接句柄: MYSQL * mysql_init (MYSQL *); 通常传递一个空指针给mysql_init这个函数,它会返回一个指向新分配的连接句柄结构的指针。 如果传递一个已有的结构,他将被重新初始化。如果出错,返回NULL。 初始化成功后,则使用mysql_real_connect来创建一个实际的连接: MYSQL * mysql_real_connect(MYSQL * connection, const char * server_host, const char * sql_user_name, const char * sql_password, const char *db_name, unsigned int port_number, const char * unix_socket_name, unsigned int flags

); connection必须是已经初始化的连接句柄结构,server_host可以是主机名,也可以是IP地址,如果仅仅连接到本机, 可以使用localhost来优化连接类型。port_number和unix_socket_name应该分别为0和NULL,除非改变了MYSQL安装的默认设置。 如果无法连接,返回NULL。完成连接后,在程序正常退出前,应该使用mysql_close关闭这个连接句柄。 void mysql_close(MYSQL * connection); 现在我们试图调用以上函数来建立一个对以上已经建好的数据库的访问,程序为connect1.c。内容如下: #include #include #include "mysql.h" int main (int argc, char *argv[]) { MYSQL *conn_ptr; conn_ptr=mysql_init(NULL); //连接初始化 if(!conn_ptr){ fprintf(stderr, "mysql_init failed\n"); return EXIT_FAILURE;

mysql数据库不能远程连接

1130 - Host XXX is not allowed to connect to t his MySQL server。 1.在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。 2.在安装Mysql数据库的主机上登录root用户: mysql -u root -p

3.依次执行如下命令: https://www.sodocs.net/doc/cc7521997.html,e mysql; 2. 3.select host from user where user='root'; 可以看到当前主机配置信息为localhost. 4.将Host设置为通配符% Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。user=root Host=localhost,表示只能通过本机客户端去访问。而%是个通配符,如果 Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置; update user set host = '%'where user ='root'; Host设置了“%”后便可以允许远程访问。 5.Host修改完成后记得执行flush privileges使配置立即生效 flush privileges; 6.使用navicat 成功连接至mysql

Qt数据库

1.在SQL语句中使用变量。 我们先看下面的一个例子,将“查询”按钮的槽函数更改如下: void Widget::on_pushButton_clicked() { QSqlQuery query; query.prepare(“insert into student (id, name) ” “values (:id, :name)”); query.bindValue(0, 5); query.bindValue(1, “sixth”); query.exec(); //下面输出最后一条记录 query.exec(“select * from student”); https://www.sodocs.net/doc/cc7521997.html,st(); int id = query.value(0).toInt(); QString name = query.value(1).toString(); qDebug() << id << name; } 运行效果如下: 可以看到,在student表的最后又添加了一条记录。在上面的程序中,我们先使用了prepare()函数,在其中利用了“:id”和“:name”来代替具体的数据,而后又利用bindValue()函数给id和name两个属性赋值,这称为绑定操作。其中编号0和1分别代表“:id”和“:name”,就是说按照prepare()函数中出现的属性从左到右编号,最左边是0 。这里的“:id”和“:name”,叫做占位符,这是ODBC数据库的表示方法,还有一种Oracle的表示方法就是全部用“?”号。如下: query.prepare(“insert into student (id, name) ” “values (?, ?)”); query.bindValue(0, 5); query.bindValue(1, “sixth”); query.exec();

mysql远程表访问设置

使用MySQL FEDERATED存储引擎,没有对表的本地数据文件(比如,没有.MYD文件)。取而代之地,一个远程数据库存储那些正常地应该在表中的数据。这使得MySQL客户端API来读,删除,更新和插入数据的使用成为必要。数据取回被通过SELECT * FROMtbl_nameSQL语句来初始化。要读这个结果,通过使用mysql_fetch_row() C API 函数,行被一次取一个,然后从SELECT结果包中的列转换成FEDERATED处理器期望的格式。 基本流程如下: 1. SQL调用被本地发布 2. MySQL处理器API (数据以处理器格式) 3. MySQL客户端API (数据被转换成SQL调用) 4. 远程数据库-> MySQL客户端API 5. 转换结果包(如果有的话)到处理器格式 6. 处理器API -> 结果行或受行影响的对本地的计数 使用FEDERATED表的步骤是非常简单的。通常,你运行两个服务器,要么在同一个主机上,要么在不同主机上。(一个FEDERATED表使用其它被同一服务器管理的表也是可能的。虽然只有极少的点要这么做)。 首先,你必须在你想要用FEDERATED表访问的远程服务器上有一个表。假设,远程的表在FEDERATED数据库中并且被如下定义: CREATE TABLE test_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '',

other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other) ) ENGINE=innodb DEFAULT CHARSET=utf8; ENGINE表选项可能命名任何存储引擎,该表需要不是一个MyISAM表。 接着,在本地服务器上为访问远程表创建一个FEDERATED表: CREATE TABLE federated_table ( id int(20) NOT NULL auto_increment, name varchar(32) NOT NULL default '', other int(20) NOT NULL default '0', PRIMARY KEY (id), KEY name (name), KEY other_key (other) ) ENGINE=FEDERATED DEFAULT CHARSET=utf8 CONNECTION='mysql://xtsv:123456@192.168.1.203:3306/xt_dbs/test_table';

QT4连接数据库的各种方法

QT4连接数据库的各种方法 驱动编译数据库连接SQL执行操作SQL执行操作使用SQL 使用SQLModel类Model类数据呈现视图中数据呈现窗体中驱动编译(ODBC)这里要提及两个数据库驱动,分别是ODBC和OCI Windows操作系统中编译ODBC驱动:Windows操作系统中编译ODBC驱动:执行以下命令,会在%QTDIR%\plugins\sqldrivers目录下面生成执行以下命令,会在%QTDIR%\plugins\sqldrivers目录下面生成qsqlodbc4.dll。qsqlodbc4.dll。 cd %QTDIR%\src\plugins\sqldrivers\odbc %QTDIR%\src\plugins\sqldrivers\ qmake -o Makefile odbc.pro mingw32-make mingw32 Linux(Unix)操作系统下编译ODBC驱动这里假定ODBC安装在/usr/local/unixODBC。下线ODBC驱动。这里假定ODBC安装在/usr/local/unixODBC。 执行以下命令,会在$QTDIR/plugins/sqldrivers目录下面生成qsqlodbc4.a。执行以下命令,会在$QTDIR/plugins/sqldrivers目录下面生成qsqlodbc4.a。 cd $QTDIR/src/plugins/sqldrivers/odbc qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+="LIBS+=L/usr/local/unixODBC/lib -lodbc" make 驱动编译(OCI 驱动编译(OCI )Windows操作系统中编译OCI驱动:这里假定Oracle Client 安装在C:\oracle。添加oci.dll动态连接库的环境变量这里假定Oracle Client安装在C:\oracle。添加oci.dll动态连接库的环境变量c:\oracle\bin。c:\oracle\bin。 set INCLUDE=%INCLUDE%;c:\oracle\oci\include INCLUDE=%INCLUDE%;c:\oracle\oci\ set LIB=%LIB%;c:\oracle\oci\lib\msvc LIB=%LIB%;c:\oracle\oci\lib\ cd %QTDIR%\src\plugins\sqldrivers\oci %QTDIR%\src\plugins\sqldrivers\ qmake -o Makefile oci.pro mingw32mingw32-make Linux(Unix)操作系统下编译OCI驱动:Linux(Unix)操作系统下编译OCI驱动:当然根据你的oracle修正下相应的版本号。当然根据你的oracle修正下相应的版本号。 Cd $QTDIR/src/plugins/sqldrivers/oci qmake -o Makefile "INCLUDEPATH+=/usr/include/oracle/10.1.0.3/client/" "LIBS+="LIBS+=-L/usr/lib/oracle/10.1.0.3/client/lib" oci.pro make QT中使用QT中使用在程序中包含头文件#include 在程序的.pro文件中添加在程序的.pro文件中添加QT += sql驱动编译数据库连接SQL执行操作SQL执行操作使用SQL 使用SQL Model类Model类数据呈现视图中数据呈现窗体中 数据库连接(单一连接)单一数据库连接: static bool sqlConnection(const QString& HostName, const QString& DatabaseName, const QString& UserName, const QString& Password) { QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName(HostName); db.setDatabaseName(DatabaseName); db.setUserName(UserName); db.setPassword(Password); if(!db.open()) { QMessageBox::critical(0, QObject::tr("Error"), QObject::tr("The database reported an error: %1").arg(https://www.sodocs.net/doc/cc7521997.html,stError().text()));

相关主题