﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-ivaneeo's blog</title><link>http://www.blogjava.net/ivanwan/</link><description>自由的力量，自由的生活。</description><language>zh-cn</language><lastBuildDate>Tue, 02 Dec 2008 10:18:00 GMT</lastBuildDate><pubDate>Tue, 02 Dec 2008 10:18:00 GMT</pubDate><ttl>60</ttl><item><title>guid类型的使用</title><link>http://www.blogjava.net/ivanwan/archive/2008/12/01/243711.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Mon, 01 Dec 2008 07:08:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2008/12/01/243711.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/243711.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2008/12/01/243711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/243711.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/243711.html</trackback:ping><description><![CDATA[oracle guid类型其实是raw(16)类型
<div>生成: SELECT SYS_GUID ()<br />
   INTO v_guid<br />
   FROM DUAL;</div>

<img src ="http://www.blogjava.net/ivanwan/aggbug/243711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2008-12-01 15:08 <a href="http://www.blogjava.net/ivanwan/archive/2008/12/01/243711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>for in 使用的例子</title><link>http://www.blogjava.net/ivanwan/archive/2008/12/01/243710.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Mon, 01 Dec 2008 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2008/12/01/243710.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/243710.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2008/12/01/243710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/243710.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/243710.html</trackback:ping><description><![CDATA[declare
c number(4);
begin
for k in 1..13 loop
c := 590+k;
dbms_job.submit(c,
'ODS_UTL_DIFF.DIFF('||k||',2,''0,21'');',
sysdate,
'trunc(sysdate)+21/24+7');
commit;
end loop;
end;
<img src ="http://www.blogjava.net/ivanwan/aggbug/243710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2008-12-01 15:07 <a href="http://www.blogjava.net/ivanwan/archive/2008/12/01/243710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>qsqlite4中文乱码解决</title><link>http://www.blogjava.net/ivanwan/archive/2007/10/20/154581.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Sat, 20 Oct 2007 15:03:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2007/10/20/154581.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/154581.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2007/10/20/154581.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/154581.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/154581.html</trackback:ping><description><![CDATA[qt4内置有sqlite插件，可以直接使用sqlite.但是发现插入中文时会有乱码问题。<br />
以windows为例，qt4内置编码为system(GBK).而sqlite内部编码为unicode.<br />
如果插入中文首先要转换为unicode.而从数据库读取时则不需要，因为qt会自动侦测编码，<br />
实例代码：<br />
&nbsp;&nbsp;&nbsp; <span style="background-color: #9e999d;">//插入记录<br />
&nbsp;&nbsp;&nbsp; QSqlQuery query;<br />
&nbsp;&nbsp;&nbsp; QByteArray sql = "insert into person values(1, 'hello', '你好！')";<br />
&nbsp;&nbsp;&nbsp; QTextCodec *codec = QTextCodec::codecForName("GBK");<br />
&nbsp;&nbsp;&nbsp; QString string = codec-&gt;toUnicode(sql); <br />
&nbsp;&nbsp;&nbsp; query.exec(string);<br />
&nbsp;&nbsp;&nbsp; //读入记录<br />
&nbsp;&nbsp;&nbsp; QSqlQuery query("select * from person");<br />
&nbsp;&nbsp;&nbsp; while (query.next()) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; QString string = query.value(2).toString();;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; QMessageBox::information(0, "infa", string, QMessageBox::Ok);<br />
&nbsp;&nbsp;&nbsp; }<br />
</span><br />
<br />
<img src ="http://www.blogjava.net/ivanwan/aggbug/154581.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2007-10-20 23:03 <a href="http://www.blogjava.net/ivanwan/archive/2007/10/20/154581.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>informatica重点</title><link>http://www.blogjava.net/ivanwan/archive/2007/04/19/111957.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Thu, 19 Apr 2007 07:43:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2007/04/19/111957.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/111957.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2007/04/19/111957.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/111957.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/111957.html</trackback:ping><description><![CDATA[1.<br>&nbsp;&nbsp;&nbsp; Transformation代表Informatica Server对数据的操作。<br>&nbsp;&nbsp;&nbsp; Transformation分类：Active和Passive<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  输入跟输出的记录数会发生改变<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  不能re-linked到另一个data stream<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  例子：Aggregator, Filter, Joiner, Normalizer, Rank, Update Strategy, Advanced External Procedure, <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ERP Source Qualifier and Source Qualifier, Application Source Qualifier, Router, Sorter &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; Passive transformations<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  输入跟输出的记录数一样<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 可以re-linked到另一个data stream<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 例子：Expression, External Procedure, Lookup, Sequence Generator&nbsp; Stored Procedure, Input, <br>Output, XML Source Qualifier <br>&nbsp;&nbsp;&nbsp; &nbsp; Transformations分类 : connected 和 unconnected,unconnected transformation在其他的组件中被调用并且有返回值。<br><br><img src ="http://www.blogjava.net/ivanwan/aggbug/111957.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2007-04-19 15:43 <a href="http://www.blogjava.net/ivanwan/archive/2007/04/19/111957.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据的清洗转换</title><link>http://www.blogjava.net/ivanwan/archive/2007/04/18/111485.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Wed, 18 Apr 2007 01:12:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2007/04/18/111485.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/111485.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2007/04/18/111485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/111485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/111485.html</trackback:ping><description><![CDATA[<h5>ETL的简介：<br></h5>
<h5>&nbsp;&nbsp;&nbsp; ETL即数据抽取（Extract）、转换（Transform）、装载（Load）的过程，它是构建数据仓库的重要环节</h5>
1、 数据清洗<br><br>
数据清洗的任务是过滤那些不符合要求的数据，将过滤的结果交给业务主管部门，确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。
<p>　　(1)不完整的数据：这一类数据主要是一些应该有的信息缺失，如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能
匹配等。对于这一类数据过滤出来，按缺失的内容分别写入不同Excel文件向客户提交，要求在规定的时间内补全。补全后才写入数据仓库。</p>
<p>　　(2)错误的数据：这一类错误产生的原因是业务系统不够健全，在接收输入后没有进行判断直接写入后台数据库造成的，比如数值数据输成全角数字字
符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。这一类数据也要分类，对于类似于全角字符、数据前后有不可见字符的问题，只能通过写
SQL语句的方式找出来，然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败，这一类错误需要去业务
系统数据库用SQL的方式挑出来，交给业务主管部门要求限期修正，修正之后再抽取。</p>
<p>　　(3)重复的数据：对于这一类数据——特别是维表中会出现这种情况——将重复数据记录的所有字段导出来，让客户确认并整理。</p>
<p>　　数据清洗是一个反复的过程，不可能在几天内完成，只有不断的发现问题，解决问题。对于是否过滤，是否修正一般要求客户确认，对于过滤掉的数据，
写入Excel文件或者将过滤数据写入数据表，在ETL开发的初期可以每天向业务单位发送过滤数据的邮件，促使他们尽快地修正错误,同时也可以做为将来验
证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉，对于每个过滤规则认真进行验证，并要用户确认。</p>
<br>
<p><br></p>
<p>2、 数据转换</p>
<p>数据转换的任务主要进行不一致的数据转换、数据粒度的转换，以及一些商务规则的计算。
</p>
<p>　　(1)不一致数据转换：这个过程是一个整合的过程，将不同业务系统的相同类型的数据统一，比如同一个供应商在结算系统的编码是XX0001,而在CRM中编码是YY0001，这样在抽取过来之后统一转换成一个编码。</p>
<p>　　(2)数据粒度的转换：业务系统一般存储非常明细的数据，而数据仓库中数据是用来分析的，不需要非常明细的数据。一般情况下，会将业务系统数据按照数据仓库粒度进行聚合。</p>
<p>　　(3)商务规则的计算：不同的企业有不同的业务规则、不同的数据指标，这些指标有的时候不是简单的加加减减就能完成，这个时候需要在ETL中将这些数据指标计算好了之后存储在数据仓库中，以供分析使用。</p>
<p><strong>三、ETL日志、警告发送</strong></p>
<p>1、 ETL日志
</p>
<p>　　ETL日志分为三类。一类是执行过程日志，这一部分日志是在ETL执行过程中每执行一步的记录，记录每次运行每一步骤的起始时间，影响了多少行
数据，流水账形式。一类是错误日志，当某个模块出错的时候写错误日志，记录每次出错的时间、出错的模块以及出错的信息等。第三类日志是总体日志，只记录
ETL开始时间、结束时间是否成功信息。如果使用ETL工具,ETL工具会自动产生一些日志，这一类日志也可以作为ETL日志的一部分。记录日志的目的是
随时可以知道ETL运行情况，如果出错了，可以知道哪里出错。</p>
<p>　　2、 警告发送</p>
<p>　　如果ETL出错了，不仅要形成ETL出错日志，而且要向系统管理员发送警告。发送警告的方式多种，一般常用的就是给系统管理员发送邮件，并附上出错的信息，方便管理员排查错误。</p>
<p>　　ETL是BI项目的关键部分，也是一个长期的过程，只有不断的发现问题并解决问题，才能使ETL运行效率更高，为BI项目后期开发提供准确的数据。</p>
<br><img src ="http://www.blogjava.net/ivanwan/aggbug/111485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2007-04-18 09:12 <a href="http://www.blogjava.net/ivanwan/archive/2007/04/18/111485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>wxwidget vc的makefile模板</title><link>http://www.blogjava.net/ivanwan/archive/2007/04/11/109881.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Wed, 11 Apr 2007 05:49:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2007/04/11/109881.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/109881.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2007/04/11/109881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/109881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/109881.html</trackback:ping><description><![CDATA[配置模板：config.vc<br><br># =========================================================================<br>#&nbsp;&nbsp;&nbsp;&nbsp; This configuration file was generated by<br>#&nbsp;&nbsp;&nbsp;&nbsp; Bakefile 0.2.1 (http://bakefile.sourceforge.net)<br>#&nbsp;&nbsp;&nbsp;&nbsp; Beware that all changes made to this file will be overwritten next<br>#&nbsp;&nbsp;&nbsp;&nbsp; time you run Bakefile!<br># =========================================================================<br><br><br># -------------------------------------------------------------------------<br># These are configurable options:<br># -------------------------------------------------------------------------<br><br># C compiler <br>CC = cl<br><br># C++ compiler <br>CXX = cl<br><br># Standard flags for CC <br>CFLAGS = <br><br># Standard flags for C++ <br>CXXFLAGS = <br><br># Standard preprocessor flags (common for CC and CXX) <br>CPPFLAGS = <br><br># Standard linker flags <br>LDFLAGS = <br><br># The C preprocessor <br>CPP = $(CC) /EP /nologo<br><br># What type of library to build? [0,1]<br>SHARED = 0<br><br># Build wxUniversal instead of native port? [0,1]<br>WXUNIV = 0<br><br># Compile Unicode build of wxWidgets? [0,1]<br>UNICODE = 0<br><br># Use MSLU library when building Unicode version. [0,1]<br>MSLU = 0<br><br># Type of compiled binaries [debug,release]<br>BUILD = release<br><br># The target processor architecture must be specified when it is not X86.<br># This does not affect the compiler output, so you still need to make sure<br># your environment is set up appropriately with the correct compiler in the<br># PATH. Rather it affects some options passed to some of the common build<br># utilities such as the resource compiler and the linker.<br># <br># Accepted values: AMD64, IA64. <br>TARGET_CPU = $(CPU)<br><br># Should debugging info be included in the executables? The default value<br># "default" means that debug info will be included if BUILD=debug<br># and not included if BUILD=release. [0,1,default]<br>DEBUG_INFO = default<br><br># Should __WXDEBUG__ be defined? The default value "default" means that it will<br># be defined if BUILD=debug and not defined if BUILD=release. [0,1,default]<br>DEBUG_FLAG = default<br><br># Should link against debug RTL (msvcrtd.dll) or release (msvcrt.dll)?<br># Acts according to BUILD by default. [0,1,default]<br>DEBUG_RUNTIME_LIBS = default<br><br># Multiple libraries or single huge monolithic one? [0,1]<br>MONOLITHIC = 0<br><br># Build GUI libraries? [0,1]<br>USE_GUI = 1<br><br># Build wxHTML library (USE_GUI must be 1)? [0,1]<br>USE_HTML = 1<br><br># Build multimedia library (USE_GUI must be 1)? [0,1]<br>USE_MEDIA = 1<br><br># Build wxXRC library (USE_GUI must be 1)? [0,1]<br>USE_XRC = 1<br><br># Build wxAUI library (USE_GUI must be 1)? [0,1]<br>USE_AUI = 1<br><br># Build wxRichTextCtrl library (USE_GUI must be 1)? [0,1]<br>USE_RICHTEXT = 1<br><br># Build OpenGL canvas library (USE_GUI must be 1)? [0,1]<br>USE_OPENGL = 0<br><br># Build ODBC database classes (USE_GUI must be 1)? [0,1]<br>USE_ODBC = 0<br><br># Build quality assurance classes library (USE_GUI must be 1)? [0,1]<br>USE_QA = 1<br><br># Enable exceptions in compiled code. [0,1]<br>USE_EXCEPTIONS = 1<br><br># Enable run-time type information (RTTI) in compiled code. [0,1]<br>USE_RTTI = 1<br><br># Enable threading in compiled code. [0,1]<br>USE_THREADS = 1<br><br># Link with gdiplus.lib? (Needed for wxGraphicsContext, will also set wxUSE_GRAPHICS_CONTEXT) [0,1]<br>USE_GDIPLUS = 0<br><br># Is this official build by wxWidgets developers? [0,1]<br>OFFICIAL_BUILD = 0<br><br># Use this to name your customized DLLs differently <br>VENDOR = custom<br><br># &nbsp;<br>WX_FLAVOUR = <br><br># &nbsp;<br>WX_LIB_FLAVOUR = <br><br># Name of your custom configuration. This affects directory<br># where object files are stored as well as the location of<br># compiled .lib files and setup.h under the lib/ toplevel directory. <br>CFG = <br><br># Compiler flags needed to compile test suite in tests directory. If you want<br># to run the tests, set it so that the compiler can find CppUnit headers. <br>CPPUNIT_CFLAGS = <br><br># Linker flags needed to link test suite in tests directory. If you want<br># to run the tests, include CppUnit library here. <br>CPPUNIT_LIBS = <br><br># Version of C runtime library to use. You can change this to<br># static if SHARED=0, but it is highly recommended to not do<br># it if SHARED=1 unless you know what you are doing. [dynamic,static]<br>RUNTIME_LIBS = dynamic<br><br><br><br>makefile: makefile.vc<br># =========================================================================<br>#&nbsp;&nbsp;&nbsp;&nbsp; This makefile was generated by<br>#&nbsp;&nbsp;&nbsp;&nbsp; Bakefile 0.2.1 (http://bakefile.sourceforge.net)<br>#&nbsp;&nbsp;&nbsp;&nbsp; Do not modify, all changes will be overwritten!<br># =========================================================================<br><br>!include &lt;../../build/msw/config.vc&gt;<br><br># -------------------------------------------------------------------------<br># Do not modify the rest of this file!<br># -------------------------------------------------------------------------<br><br>### Variables: ###<br><br>WX_RELEASE_NODOT = 28<br>OBJS = \<br>&nbsp;&nbsp;&nbsp; vc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)$(DIR_SUFFIX_CPU)<br>LIBDIRNAME = .\..\..\lib\vc$(DIR_SUFFIX_CPU)_$(LIBTYPE_SUFFIX)$(CFG)<br>SETUPHDIR = \<br>&nbsp;&nbsp;&nbsp; $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)<br>TASKBAR_CXXFLAGS = /M$(__RUNTIME_LIBS_8)$(__DEBUGRUNTIME_3) /DWIN32 \<br>&nbsp;&nbsp;&nbsp; $(__DEBUGINFO_0) /Fd$(OBJS)\taskbar.pdb $(____DEBUGRUNTIME_2_p) \<br>&nbsp;&nbsp;&nbsp; $(__OPTIMIZEFLAG_4) $(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) \<br>&nbsp;&nbsp;&nbsp; $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \<br>&nbsp;&nbsp;&nbsp; $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \<br>&nbsp;&nbsp;&nbsp; $(__GFXCTX_DEFINE_p) /I$(SETUPHDIR) /I.\..\..\include /W4 /I. $(__DLLFLAG_p) \<br>&nbsp;&nbsp;&nbsp; /D_WINDOWS /I.\..\..\samples /DNOPCH $(__RTTIFLAG_9) $(__EXCEPTIONSFLAG_10) \<br>&nbsp;&nbsp;&nbsp; $(CPPFLAGS) $(CXXFLAGS)<br>TASKBAR_OBJECTS =&nbsp; \<br>&nbsp;&nbsp;&nbsp; $(OBJS)\taskbar_sample.res \<br>&nbsp;&nbsp;&nbsp; $(OBJS)\taskbar_tbtest.obj<br><br>### Conditionally set variables: ###<br><br>!if "$(USE_GUI)" == "0"<br>PORTNAME = base<br>!endif<br>!if "$(USE_GUI)" == "1"<br>PORTNAME = msw<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_FLAG)" == "default"<br>WXDEBUGFLAG = d<br>!endif<br>!if "$(DEBUG_FLAG)" == "1"<br>WXDEBUGFLAG = d<br>!endif<br>!if "$(UNICODE)" == "1"<br>WXUNICODEFLAG = u<br>!endif<br>!if "$(WXUNIV)" == "1"<br>WXUNIVNAME = univ<br>!endif<br>!if "$(TARGET_CPU)" == "amd64"<br>DIR_SUFFIX_CPU = _amd64<br>!endif<br>!if "$(TARGET_CPU)" == "amd64"<br>DIR_SUFFIX_CPU = _amd64<br>!endif<br>!if "$(TARGET_CPU)" == "ia64"<br>DIR_SUFFIX_CPU = _ia64<br>!endif<br>!if "$(TARGET_CPU)" == "ia64"<br>DIR_SUFFIX_CPU = _ia64<br>!endif<br>!if "$(SHARED)" == "1"<br>WXDLLFLAG = dll<br>!endif<br>!if "$(SHARED)" == "0"<br>LIBTYPE_SUFFIX = lib<br>!endif<br>!if "$(SHARED)" == "1"<br>LIBTYPE_SUFFIX = dll<br>!endif<br>!if "$(TARGET_CPU)" == "amd64"<br>LINK_TARGET_CPU = /MACHINE:AMD64<br>!endif<br>!if "$(TARGET_CPU)" == "amd64"<br>LINK_TARGET_CPU = /MACHINE:AMD64<br>!endif<br>!if "$(TARGET_CPU)" == "ia64"<br>LINK_TARGET_CPU = /MACHINE:IA64<br>!endif<br>!if "$(TARGET_CPU)" == "ia64"<br>LINK_TARGET_CPU = /MACHINE:IA64<br>!endif<br>!if "$(MONOLITHIC)" == "0"<br>EXTRALIBS_FOR_BASE = <br>!endif<br>!if "$(MONOLITHIC)" == "1"<br>EXTRALIBS_FOR_BASE =&nbsp; <br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_INFO)" == "default"<br>__DEBUGINFO_0 = /Zi<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_INFO)" == "default"<br>__DEBUGINFO_0 = <br>!endif<br>!if "$(DEBUG_INFO)" == "0"<br>__DEBUGINFO_0 = <br>!endif<br>!if "$(DEBUG_INFO)" == "1"<br>__DEBUGINFO_0 = /Zi<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_INFO)" == "default"<br>__DEBUGINFO_1 = /DEBUG<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_INFO)" == "default"<br>__DEBUGINFO_1 = <br>!endif<br>!if "$(DEBUG_INFO)" == "0"<br>__DEBUGINFO_1 = <br>!endif<br>!if "$(DEBUG_INFO)" == "1"<br>__DEBUGINFO_1 = /DEBUG<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "default"<br>____DEBUGRUNTIME_2_p = /D_DEBUG<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "default"<br>____DEBUGRUNTIME_2_p = <br>!endif<br>!if "$(DEBUG_RUNTIME_LIBS)" == "0"<br>____DEBUGRUNTIME_2_p = <br>!endif<br>!if "$(DEBUG_RUNTIME_LIBS)" == "1"<br>____DEBUGRUNTIME_2_p = /D_DEBUG<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "default"<br>____DEBUGRUNTIME_2_p_1 = /d _DEBUG<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "default"<br>____DEBUGRUNTIME_2_p_1 = <br>!endif<br>!if "$(DEBUG_RUNTIME_LIBS)" == "0"<br>____DEBUGRUNTIME_2_p_1 = <br>!endif<br>!if "$(DEBUG_RUNTIME_LIBS)" == "1"<br>____DEBUGRUNTIME_2_p_1 = /d _DEBUG<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "default"<br>__DEBUGRUNTIME_3 = d<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "default"<br>__DEBUGRUNTIME_3 = <br>!endif<br>!if "$(DEBUG_RUNTIME_LIBS)" == "0"<br>__DEBUGRUNTIME_3 = <br>!endif<br>!if "$(DEBUG_RUNTIME_LIBS)" == "1"<br>__DEBUGRUNTIME_3 = d<br>!endif<br>!if "$(BUILD)" == "debug"<br>__OPTIMIZEFLAG_4 = /Od<br>!endif<br>!if "$(BUILD)" == "release"<br>__OPTIMIZEFLAG_4 = /O2<br>!endif<br>!if "$(USE_THREADS)" == "0"<br>__THREADSFLAG_7 = L<br>!endif<br>!if "$(USE_THREADS)" == "1"<br>__THREADSFLAG_7 = T<br>!endif<br>!if "$(RUNTIME_LIBS)" == "dynamic"<br>__RUNTIME_LIBS_8 = D<br>!endif<br>!if "$(RUNTIME_LIBS)" == "static"<br>__RUNTIME_LIBS_8 = $(__THREADSFLAG_7)<br>!endif<br>!if "$(USE_RTTI)" == "0"<br>__RTTIFLAG_9 = <br>!endif<br>!if "$(USE_RTTI)" == "1"<br>__RTTIFLAG_9 = /GR<br>!endif<br>!if "$(USE_EXCEPTIONS)" == "0"<br>__EXCEPTIONSFLAG_10 = <br>!endif<br>!if "$(USE_EXCEPTIONS)" == "1"<br>__EXCEPTIONSFLAG_10 = /EHsc<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "0"<br>__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_FLAG)" == "1"<br>__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_RUNTIME_LIBS)" == "0"<br>__NO_VC_CRTDBG_p_1 = /d __NO_VC_CRTDBG__<br>!endif<br>!if "$(BUILD)" == "release" &amp;&amp; "$(DEBUG_FLAG)" == "1"<br>__NO_VC_CRTDBG_p_1 = /d __NO_VC_CRTDBG__<br>!endif<br>!if "$(WXUNIV)" == "1"<br>__WXUNIV_DEFINE_p = /D__WXUNIVERSAL__<br>!endif<br>!if "$(WXUNIV)" == "1"<br>__WXUNIV_DEFINE_p_1 = /d __WXUNIVERSAL__<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_FLAG)" == "default"<br>__DEBUG_DEFINE_p = /D__WXDEBUG__<br>!endif<br>!if "$(DEBUG_FLAG)" == "1"<br>__DEBUG_DEFINE_p = /D__WXDEBUG__<br>!endif<br>!if "$(BUILD)" == "debug" &amp;&amp; "$(DEBUG_FLAG)" == "default"<br>__DEBUG_DEFINE_p_1 = /d __WXDEBUG__<br>!endif<br>!if "$(DEBUG_FLAG)" == "1"<br>__DEBUG_DEFINE_p_1 = /d __WXDEBUG__<br>!endif<br>!if "$(USE_EXCEPTIONS)" == "0"<br>__EXCEPTIONS_DEFINE_p = /DwxNO_EXCEPTIONS<br>!endif<br>!if "$(USE_EXCEPTIONS)" == "0"<br>__EXCEPTIONS_DEFINE_p_1 = /d wxNO_EXCEPTIONS<br>!endif<br>!if "$(USE_RTTI)" == "0"<br>__RTTI_DEFINE_p = /DwxNO_RTTI<br>!endif<br>!if "$(USE_RTTI)" == "0"<br>__RTTI_DEFINE_p_1 = /d wxNO_RTTI<br>!endif<br>!if "$(USE_THREADS)" == "0"<br>__THREAD_DEFINE_p = /DwxNO_THREADS<br>!endif<br>!if "$(USE_THREADS)" == "0"<br>__THREAD_DEFINE_p_1 = /d wxNO_THREADS<br>!endif<br>!if "$(UNICODE)" == "1"<br>__UNICODE_DEFINE_p = /D_UNICODE<br>!endif<br>!if "$(UNICODE)" == "1"<br>__UNICODE_DEFINE_p_1 = /d _UNICODE<br>!endif<br>!if "$(MSLU)" == "1"<br>__MSLU_DEFINE_p = /DwxUSE_UNICODE_MSLU=1<br>!endif<br>!if "$(MSLU)" == "1"<br>__MSLU_DEFINE_p_1 = /d wxUSE_UNICODE_MSLU=1<br>!endif<br>!if "$(USE_GDIPLUS)" == "1"<br>__GFXCTX_DEFINE_p = /DwxUSE_GRAPHICS_CONTEXT=1<br>!endif<br>!if "$(USE_GDIPLUS)" == "1"<br>__GFXCTX_DEFINE_p_1 = /d wxUSE_GRAPHICS_CONTEXT=1<br>!endif<br>!if "$(SHARED)" == "1"<br>__DLLFLAG_p = /DWXUSINGDLL<br>!endif<br>!if "$(SHARED)" == "1"<br>__DLLFLAG_p_1 = /d WXUSINGDLL<br>!endif<br>!if "$(MONOLITHIC)" == "0"<br>__WXLIB_ADV_p = \<br>&nbsp;&nbsp;&nbsp; wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib<br>!endif<br>!if "$(MONOLITHIC)" == "0"<br>__WXLIB_HTML_p = \<br>&nbsp;&nbsp;&nbsp; wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib<br>!endif<br>!if "$(MONOLITHIC)" == "0"<br>__WXLIB_XML_p = \<br>&nbsp;&nbsp;&nbsp; wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib<br>!endif<br>!if "$(MONOLITHIC)" == "0"<br>__WXLIB_CORE_p = \<br>&nbsp;&nbsp;&nbsp; wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib<br>!endif<br>!if "$(MONOLITHIC)" == "0"<br>__WXLIB_BASE_p = \<br>&nbsp;&nbsp;&nbsp; wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib<br>!endif<br>!if "$(MONOLITHIC)" == "1"<br>__WXLIB_MONO_p = \<br>&nbsp;&nbsp;&nbsp; wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib<br>!endif<br>!if "$(USE_GUI)" == "1"<br>__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib<br>!endif<br>!if "$(USE_GUI)" == "1"<br>__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib<br>!endif<br>!if "$(USE_GUI)" == "1"<br>__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib<br>!endif<br>!if "$(MSLU)" == "1"<br>__UNICOWS_LIB_p = unicows.lib<br>!endif<br>!if "$(USE_GDIPLUS)" == "1"<br>__GDIPLUS_LIB_p = gdiplus.lib<br>!endif<br><br><br>all: $(OBJS)<br>$(OBJS):<br>&nbsp;&nbsp;&nbsp; -if not exist $(OBJS) mkdir $(OBJS)<br><br>### Targets: ###<br><br>all: $(OBJS)\taskbar.exe<br><br>clean: <br>&nbsp;&nbsp;&nbsp; -if exist $(OBJS)\*.obj del $(OBJS)\*.obj<br>&nbsp;&nbsp;&nbsp; -if exist $(OBJS)\*.res del $(OBJS)\*.res<br>&nbsp;&nbsp;&nbsp; -if exist $(OBJS)\*.pch del $(OBJS)\*.pch<br>&nbsp;&nbsp;&nbsp; -if exist $(OBJS)\taskbar.exe del $(OBJS)\taskbar.exe<br>&nbsp;&nbsp;&nbsp; -if exist $(OBJS)\taskbar.ilk del $(OBJS)\taskbar.ilk<br>&nbsp;&nbsp;&nbsp; -if exist $(OBJS)\taskbar.pdb del $(OBJS)\taskbar.pdb<br><br>$(OBJS)\taskbar.exe: $(TASKBAR_OBJECTS) $(OBJS)\taskbar_sample.res<br>&nbsp;&nbsp;&nbsp; link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_1)&nbsp; $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @&lt;&lt;<br>&nbsp;&nbsp;&nbsp; $(TASKBAR_OBJECTS)&nbsp; $(__WXLIB_ADV_p)&nbsp; $(__WXLIB_HTML_p)&nbsp; $(__WXLIB_XML_p)&nbsp; $(__WXLIB_CORE_p)&nbsp; $(__WXLIB_BASE_p)&nbsp; $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)&nbsp; wxzlib$(WXDEBUGFLAG).lib&nbsp; wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib<br>&lt;&lt;<br><br>$(OBJS)\taskbar_sample.res: .\..\..\samples\sample.rc<br>&nbsp;&nbsp;&nbsp; rc /fo$@&nbsp; /d WIN32 $(____DEBUGRUNTIME_2_p_1) $(__NO_VC_CRTDBG_p_1)&nbsp; /d __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) $(__GFXCTX_DEFINE_p_1) /i $(SETUPHDIR) /i .\..\..\include /i . $(__DLLFLAG_p_1) /d _WINDOWS /i .\..\..\samples $**<br><br>$(OBJS)\taskbar_tbtest.obj: .\tbtest.cpp<br>&nbsp;&nbsp;&nbsp; $(CXX) /c /nologo /TP /Fo$@ $(TASKBAR_CXXFLAGS) $**<br><br><img src ="http://www.blogjava.net/ivanwan/aggbug/109881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2007-04-11 13:49 <a href="http://www.blogjava.net/ivanwan/archive/2007/04/11/109881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>定义宏的一个小技巧</title><link>http://www.blogjava.net/ivanwan/archive/2007/02/06/98216.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 06 Feb 2007 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2007/02/06/98216.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/98216.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2007/02/06/98216.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/98216.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/98216.html</trackback:ping><description><![CDATA[在swt代码中有一个段:<br /><br /><font color="#ff0000">#define OS_NATIVE(func) Java_org_eclipse_swt_internal_gtk_OS_##func<br /><br /></font><font color="#000000">如果宏代替OS_NATIVE(foo),这样就会产生这样一个代替Java_org_eclipse_swt_internal_gtk_OS_foo.<br />非常实用!</font><img src ="http://www.blogjava.net/ivanwan/aggbug/98216.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2007-02-06 11:32 <a href="http://www.blogjava.net/ivanwan/archive/2007/02/06/98216.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>rdoc地址集合</title><link>http://www.blogjava.net/ivanwan/archive/2006/11/20/82341.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Mon, 20 Nov 2006 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/11/20/82341.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/82341.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/11/20/82341.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/82341.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/82341.html</trackback:ping><description><![CDATA[1.ruby<br />    http://www.ruby-doc.org/core/<br />    代理访问:http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.ruby-doc.org/core/<br /><br />    http://www.ruby-doc.org/stdlib/<br />2.rmagick<br />    http://studio.imagemagick.org/RMagick/doc/index.html<br /><br />3.gemjack.com集合的大多数rdoc(推荐!)<br />    http://gemjack.com/<br /><img src ="http://www.blogjava.net/ivanwan/aggbug/82341.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-11-20 17:44 <a href="http://www.blogjava.net/ivanwan/archive/2006/11/20/82341.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dbi如何操作blob</title><link>http://www.blogjava.net/ivanwan/archive/2006/11/20/82339.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Mon, 20 Nov 2006 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/11/20/82339.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/82339.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/11/20/82339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/82339.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/82339.html</trackback:ping><description><![CDATA[mysql和oracle存储图片文件都是用blob类型,但是ruby怎么处理的呢?<br />ruby还是把它当作字符串,但是要经过加工.<br /><br />我们完全可以使用rmagick这个图形库来进行.<br /><br /><br />代码:<br />    require 'rubygems'<br />    require_gem 'rmagick'<br />    include Magick<br /><br />    DBI.connect('DBI:Mysql:test_dbo:192.168.0.164', 'mysql', '') { |dbh|<br />     dbh.execute 'SET NAMES utf8'<br />       1.upto(13) { |i|<br />      str = "insert into users(name, pwd, img) values(?,?,?)"<br />     dbh.prepare(str) { |st|<br /> jpg = Image.read('1.jpg').first<br />  st.execute('a', 'b', jpg.to_blob)<br />  }<br /> }<br /> }<br /><br />如果从数据库反响出来,也类似(from_blob方法)<br /><br /><img src ="http://www.blogjava.net/ivanwan/aggbug/82339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-11-20 17:38 <a href="http://www.blogjava.net/ivanwan/archive/2006/11/20/82339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dbi或activerecord操作mysql的中文问题</title><link>http://www.blogjava.net/ivanwan/archive/2006/11/20/82256.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Mon, 20 Nov 2006 06:28:00 GMT</pubDate><guid>http://www.blogjava.net/ivanwan/archive/2006/11/20/82256.html</guid><wfw:comment>http://www.blogjava.net/ivanwan/comments/82256.html</wfw:comment><comments>http://www.blogjava.net/ivanwan/archive/2006/11/20/82256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ivanwan/comments/commentRss/82256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ivanwan/services/trackbacks/82256.html</trackback:ping><description><![CDATA[
		<span style="font-family: monospace;">首先创建表,我们这里默认编码utf8:<br /><br /></span>create table samples (<br /><pre>    id int not null auto_increment,<br />    foo varchar(100) not null,<br />    bar text not null,<br />    primary key (id)<br />) Type=MyISAM CHARACTER SET utf8;<br /><br /><br />这里创建表类型时要使用MyISAM类型,因为只有MyISAM类型才支持完整的utf8.最后设置编码utf8.<br /><br />1.dbi操作数据库<br />	如果你本地编码时gbk的话,首先要默认类Iconv进行转换.<br />		require 'iconv'<br />		def gb2u str<br />			conv = Iconv.new("UTF-8", "GBK")<br />			str = conv.iconv(str)<br />			str &lt;&lt; conv.iconv(nil)<br />			conv.close<br /><br />			str<br />		end<br /><br />	插入代码:<br />		DBI.connect('DBI:Mysql:test:localhost', 'mysql', '') { |dbh|<br />	 		dbh.execute 'SET NAMES utf8'  #这里要指明代码<br />     			1.upto(13) { |i|<br />	  			st.execute("insert into samples(foo, bar) values('#{gb2u('一')}#{i}', '#{gb2u('二')}')")<br />	  		}<br />     		}<br /><br /><br /><br />2.activerecord<br />	activerecord是对dbi的包装.(也更神,呵呵!)<br />	代码:<br />		require     'rubygems'<br />		require_gem 'activerecord' #因为我是gem的安装<br /><br />		ActiveRecord::Base.establish_connection(<br />			:adapter =&gt;  "mysql",<br />			:host     =&gt; "localhost",<br />			:database =&gt; "test",<br />			:username =&gt; "mysql",<br />			:password =&gt; "",<br />			:encoding =&gt; "utf8") #编码只需这里指明<br /><br />		#指明表<br />		class Mytab &lt; ActiveRecord::Base<br />			set_table_name 'samples'<br />		end<br /><br />		#插入数据<br />		tab = Mytab.new<br />		tab.foo= gb2u('一')<br />		tab.bar = gb2u('二')<br />		tab.save<br /><br />		#查询数据<br />		data = Mytab.find(:all)<br />		data.each { |line| <br />			puts "['#{line[:id]}', '#{line[:foo]}, '#{line[:bar]}]" <br />		}<br /><br /><br /><br /><br /></pre><img src ="http://www.blogjava.net/ivanwan/aggbug/82256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ivanwan/" target="_blank">ivaneeo</a> 2006-11-20 14:28 <a href="http://www.blogjava.net/ivanwan/archive/2006/11/20/82256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>