如何在 .net (C#/vB.Net都可以)中使用 db.mysql.sqlparser.grt.dll

zjcxc 2016-12-23 05:18:25
背景:
最近想做一个 MySQL 语法相关的东东,需要把 SQL 语句解析出来,找到了现成的 DLL: db.mysql.sqlparser.grt.dll
这个在 MySQL 官网工具 WorkBench 中自带(工具和源代码可以在官网下载 ,源码看起来是VC的)
问题:
如何在 .net 中使用 db.mysql.sqlparser.grt.dll?
我只会 C#和 VB,所以VC源代码看不懂
直接添加引用是行不通的,在网上找到的方法是 DLLImport方法也是行不通的
https://social.msdn.microsoft.com/Forums/vstudio/en-US/4624961a-bbd7-4b19-811c-bda211d2d87c/c-dll-in-vbnet?forum=vbgeneral
Module Module1
Declare Function checkSqlSyntax Lib "c:\WorkBench\db.mysql.sqlparser.grt.dll" _
Alias "?checkSqlSyntax@MysqlSqlFacadeImpl@@UEAAHAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z" _
(ByVal sql As String) As Integer

Sub Main()
Console.WriteLine(checkSqlSyntax("select 1"))
End Sub
End Module


Alias 中的内容是通过 Dumpbin 查到的,测试调用的函数在源码这些地方看得到
-- Modules --> db.mysql.sqlparser.grt --> Header Files --> mysql_sql_facade.h
DECLARE_MODULE_FUNCTION(MysqlSqlFacadeImpl::checkSqlSyntax),
-- Modules --> db.mysql.sqlparser.grt --> Source Files --> mysql_sql_facade.cpp
int MysqlSqlFacadeImpl::checkSqlSyntax(const std::string &sql)
{
return Mysql_sql_syntax_check::create(get_grt())->check_sql(sql.c_str());
}

我的调用报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏
...全文
555 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2017-01-10
  • 打赏
  • 举报
回复
看起来很不完善的样子,这样简单的都有问题 create table tb(a datetime(3));
zjcxc 2017-01-09
  • 打赏
  • 举报
回复
多谢,我先试用一下 用 db.mysql.sqlparser.grt.dl,主要是考虑到是官方版本,更新和准确性能够得到保障
Tiger_Zhao 2017-01-05
  • 打赏
  • 举报
回复
发现一个通用工具 General SQL Parser .NET Version
如果只解析语法,不一定非要用 db.mysql.sqlparser.grt.dll 吧。
zjcxc 2017-01-04
  • 打赏
  • 举报
回复
没人知道,也来个人踩一下啊。。。。。。。。。。。。。
zjcxc 2016-12-23
  • 打赏
  • 举报
回复
这个东东在 WorkBench 自己的 Shell 中可以用,不管是写成插件还是直接在它的 shell 中(python脚本) 但我如果不在WorkBench中,直接启动 WorkBench 根目录下的 python.exe进入命令行,也用不到(也不知道该如何加载,python也是因为这个事才弄了一下下,不熟)
含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度(Matlab代码实现)内容概要:本文介绍了含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度的Matlab代码实现方法,重点围绕电力系统考虑楼宇空间布局的集群划分与优化调度问题展开,涵盖冷、热、电多能协同供应与储能调节机制。通过多时间尺度(如日前、日内、实时)的优化模型,实现能源利用效率提升与运行成本降低的目标。文还提及相关智能优化算法的应用,如改进灰狼算法、多目标粒子群算法等,用于解决复杂的非线性调度问题,并提供了完整的Matlab仿真资源与案例复现支持。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及从事微网优化、综合能源系统设计的工程技术人员,熟悉Matlab编程与基本优化算法者更佳。; 使用场景及目标:①用于科研项目冷热电联供微网系统的建模与仿真;②支撑论文复现与算法改进,特别是在多时间尺度调度、需求响应、储能优化等领域;③辅助实际工程微网能量管理系统的设计与决策分析; 阅读建议:建议结合文档提供的网盘资源进行代码实践,重点关注模型构建逻辑与算法实现细节,配合YALMIP+CPLEX等工具包调试优化问题,同时参考文列举的SCI/EI论文复现案例深化理解。

16,719

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧