浏览 1933 次
锁定老帖子 主题:ruby点滴(一)
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-10
最后修改:2010-07-15
一、GBK和UTF-8的转换
用GBK而不要用GB2312,因为GBK不仅包含简体中文,还包括繁体中文等,是一个大字符集。
# utf8 to gbk def u2g(ucode) begin "#{Iconv.conv('gbk','utf-8',ucode)}" rescue " #{ucode} " #如果转换不成功,则不转换,并在字符串两边加入空格,避免构造出错误的sql字符串。 end end
在网络上抓取的信息,可使用这个方法转换。
二、RUBY DBI ruby和sqlserver交互的时候,使用dbi是一个不错的选择。
dbi有两个比较重要的方法,一个是execute方法,会返回一个结果集,一个是do方法,do方法不会返回结果集,也不会返回受影响的行数,do方法是提交一个事务,而commit方法可以将之前所有使用do方法提交的事务执行,commit会返回受影响的行数。
需要注意的是,如果使用do方法插入一条数据,而没有commit直接disconnect了,将会导致这条数据插入数据库又被删除,因为你这个时候再插入一条新的数据发现,自增长的主键,被空出一个位置来,比如从3一下跳到了5,所以不要忘记commit。
三、Net::HTTP
Net::HTTP::new方法可以支持4个参数的重载。
req = Net::HTTP.new 'sample.com', 80, 'proxy.com', 8080
第三个和第四个参数是指定代理服务器
四、执行sql语句的时候 务必替换特殊字符
name = "lee's book" sql = "select * from books where name = #{name.gsub("'", "''")}"
五、节约临时对象的编写 groups = posts.group_by {|post| post.author_id}
替换成: groups = posts.group_by {&:author_id}
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-12-10
引用 二、RUBY DBI ruby和sqlserver交互的时候,使用dbi是一个不错的选择。 dbi有两个比较重要的方法,一个是execute方法,会返回一个结果集,一个是do方法,do方法不会返回结果集,也不会返回受影响的行数,do方法是提交一个事务,而commit方法可以将之前所有使用do方法提交的事务执行,commit会返回受影响的行数。 需要注意的是,如果使用do方法插入一条数据,而没有commit直接disconnect了,将会导致这条数据插入数据库又被删除,因为你这个时候再插入一条新的数据发现,自增长的主键,被空出一个位置来,比如从3一下跳到了5,所以不要忘记commit。 1. do之后事务有没有提交取决于你是不是用的auto commit 模式 2. commit == 提交。 do之后sql就被执行了。 引用 四、执行sql语句的时候 务必替换特殊字符 用placeholder省心省力 |
|
返回顶楼 | |