E语言连接Mysql怎么才能执行一个sql文件
在控制台里可以使用source命令去执行一个sql里的sql语言,如:sourced:/sst.sql;现在在程序里不支持source语句,在sqlyog里也不支持(只能...
在控制台里可以使用source 命令去执行一个sql里的sql语言,如:source d:/sst.sql;现在在程序里不支持source 语句,在sqlyog里也不支持(只能在控制台使用),不过sqlyog里可以执行sql文件里的东西(sql文件里是一个修改存储过程的sql语句),我把它读出来执行会失败,用执行SQL语句 (mysql句柄, sql)会执行失败,不过执行单个sql语句会成功,求大神说明下用说明方法能执行sql文件里的sql语句(简单来说就是一次可以执行一大推sql语句,不是那个类似多行插入的那种),像这样的,如下:这个东西是放在一个文本文件里的
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `get_accout`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_accout`(IN in_qq VARCHAR(16),IN in_type INT )
BEGIN
SET @in_type = in_type;
SET @assign = '';
IF (@in_type <> 0) THEN
SELECT assign INTO @assign FROM tb_qq WHERE connectip = in_qq AND assign <> '' LIMIT 1;
END IF;
IF (@in_type = 0) THEN
SELECT tq.accout
, tq.passwd
, tq.st
, tq.iop
, tq.cname
, trg.regionname
, (SELECT COUNT(*) FROM tb_roed tr WHERE tq.accout = tr.accout AND tr.reg = tq.reg ) AS noplrolecount
, tq.id
FROM tb_qsts AS tq LEFT JOIN tb_region trg ON(tq.region = trg.regionid)
WHERE tq.qq = in_qq;
END IF;
END$$
DELIMITER ;
谢谢帮忙 展开
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `get_accout`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `get_accout`(IN in_qq VARCHAR(16),IN in_type INT )
BEGIN
SET @in_type = in_type;
SET @assign = '';
IF (@in_type <> 0) THEN
SELECT assign INTO @assign FROM tb_qq WHERE connectip = in_qq AND assign <> '' LIMIT 1;
END IF;
IF (@in_type = 0) THEN
SELECT tq.accout
, tq.passwd
, tq.st
, tq.iop
, tq.cname
, trg.regionname
, (SELECT COUNT(*) FROM tb_roed tr WHERE tq.accout = tr.accout AND tr.reg = tq.reg ) AS noplrolecount
, tq.id
FROM tb_qsts AS tq LEFT JOIN tb_region trg ON(tq.region = trg.regionid)
WHERE tq.qq = in_qq;
END IF;
END$$
DELIMITER ;
谢谢帮忙 展开
1个回答
展开全部
你说的E语言是哪种?易语言?
数据库是mysql?
根据我在C#里读入文本执行到sqlserver的经验来看,应该是要调用数据库内置的一些dll。
更多追问追答
追问
恩 是 易语言,mysql数据库,今天才接触,不知道怎么把整个文件里的sql都执行完
追答
我对易语言和mysql都不熟悉,不过应该是想通的,查了下,有类似
mysql -u chris -p test < /tmp/myfile.sql
这种命令行可以执行,易语言调用命令行应该比较简单吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询