MYSQL网站制作之MySQL UDF的调试体例 - debugview
在我们工作的过程中,经常能听到很多不使用MySQL的理由,虽然其中有一些是对MySQL的误解,不过同样也有一些是合情合理的。debug|mysqlMySQLUDF的调试体例
MySQL的UDF本色就是一个不必要设置出口点的静态毗连库(*Nix称之为共享库)。关于DLL的调试可谓团体有个法。如今我先容一下一个十分复杂的易用的调试办法。这一办法间接使用WindowsAPI,言语有关、开辟工具有关、项目范例有关,典范的三无调试办法。而且,我们从这里会商的调试办法撑持远程调试,关于一时没法把握开辟工具底本调试器而又急于寻觅程序毛病的伴侣此办法十分有用!
起首我们必要下载吸收端,固然故意人也能够本人写一个。在http://www.sysinternals.com/ntw2k/freeware/debugview.shtml。透过debugview手册我们能够晓得这个工具撑持win9x/nt系列,而且撑持内核调试!因为其挪用的API均只能吸收一个char*范例参数,以是有些时分我们必要使用其他的函数无机组合发生人道可读提醒。
为了削减庞大水平复杂的以来自http://delphi.ktop.com.tw/topic.asp?TOPIC_ID=35166会商为例,解说我是怎样使用这里工具举行调试的。
1复杂输入一行信息,在调试入手下手时输入一条复杂的信息便于我们懂得debug到甚么中央了。
在程序代码中依据必要到场下边一行
OutputDebugStringA("--UDF:my_name()被挪用");
如许一来我就晓得我界说的my_name被客户用到了,接着我要体贴前往值怎样。
2输入前往值
输入前往值办法良多,能够自在组合。自在组合的终极目标是将一个无效的char*范例参数传送给WiNDOWSAPI。这里复杂的以C言语字符把持函数为例。
例子:
#include<stdio.h>/*函数-sprintf*/
#include<windows.h>/*挂接windowsapi*/
/*...........省略*/
char*__stdcallmy_name(UDF_INIT*initid,UDF_ARGS*args,char*is_null,char*error)
{
OutputDebugStringA("--UDF:my_name()被挪用");/*挪用了?*/
char*me="myname";
/*----debugerstart----*/
chardebugermsg={0};
sprintf(debugermsg,"%s",me);
OutputDebugStringA(debugermsg);
/*----debugerend----*/
returnme;
}
当在程序中到场了相似代码那末调试就能够入手下手了,使用这类体例即使不利用"debuger"体例编译仍旧能够失掉所需的调试信息。
吸收调试信息
吸收调试信息只需翻开debugview程序便可,程序主窗口能够及时前往所必要的调试信息。
别的平台请自行查阅手册取得对应的api,使用这类体例调试办法得当其实不会形成任何困扰。
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。 从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力 对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。 原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜! varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。 原来公司用过MYSQL自己也只是建个表写个SQL 而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~ 很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
页:
[1]