ʹÓÃrubyÓëMS AccessÊý¾Ý¿â½»»¥
ruby³£¹æ·ÃÎÊaccessÊý¾Ý¿âµÄ·½·¨Ó¦¸ÃÊÇʹÓÃDBI¿â
£º
require 'dbi'
DBI.connect("DBI:ADO:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;")
¿ÉÊÇ
¼òµ¥³¢ÊÔÖ®ºóûÄܳɹ¦£¬ÌáʾÕÒ²»µ½Çý¶¯Æ÷ADO,ÀÁµÃÔÙÊÔ£¬ËìÕÒÆäËû·½·¨¡£
Ò»·¬ËÑË÷Ö®ºó£¬·¢ÏÖ¿ÉÒÔÓÃWIN32OLEÀ´·ÃÎÊaccess,дһ¸ö¼òµ¥µÄÀà°ü×°Ö®:
require 'win32ole'
class AccessDb
attr_accessor :mdb, :connection, :data, :fields
def initialize(mdb=nil)
@mdb = mdb
@connection = nil
@data = nil
@fields = nil
end
def open
connection_string = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
connection_string << @mdb
@connection = WIN32OLE.new('ADODB.Connection')
@connection.Open(connection_string)
end
def query(sql)
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(sql, @connection)
@fields = []
recordset.Fields.each do |field|
@fields << field.Name
end
begin
@data = recordset.GetRows.transpose
rescue
@data = []
end
recordset.Close
end
def execute(sql)
@connection.Execute(sql)
end
def close
@connection.Close
end
end
ʹÓ÷½·¨ÈçÏÂ:
db=AccessDb.new('f:\db.mdb')
db.open
db.query('select * from foods')
db.fields
db.data
db.execute("insert into foods values (3,'xxx',299,'xo','good!');"
db.close
ÏÂÃæÔÙ¸ø³öʹÓÃrubyѹËõÐÞ¸´accessÊý¾Ý¿âµÄÀý×Ó:
require 'win32ole'
def fixaccess(path,newpath)
jet=WIN32OLE.new('JRO.JetEngine')
File.delete(newpath) if File.exist?(newpath)
sp="Provider=Microsoft.ACE.OLEDB.12.0"
ss=sp+";Data Source="+path
sd=sp+";Data Source="+newpath+";Jet OLEDB:Engine Type=5"
jet.CompactDatabase ss,sd
end
±ÈÈçÒªÇóѹËõdb.mdbÎļþ£¬Ñ¹ËõºóµÄÎļþÃûΪnew_db.mdb²Ù×÷ÈçÏÂ:
fixaccess('f:\db.mdb','f:\new_db.mdb')
·½·¨fixaccessÖеÄspÔÚ°²×°ÁËoffice2007µÄϵͳÉÏ
Ïà¹ØÎĵµ£º
×î½ü×öÁËÒ»¸öÊý¾ÝÕï¶ÏµÄÏîÄ¿£¬ÀïÃæ×Ô¼ºÐ´ÁËÒ»¸öÊý¾Ý¿âµÄ²Ù×÷À࣬°üº¬£ºÁ¬½ÓÊý¾Ý¿â¡¢¶ÁÊý¾Ý±í¡¢Ö´ÐÐSQL²Ù×÷£¬ÊÍ·ÅÊý¾Ý¿âµÈ×é³É£¬Ï£Íû¶Ô´ó¼ÒÓÐÓã¬ÓÉÓÚˮƽÓÐÏÞ£¬ÈôÓдíÎó»òÕß´úÂë²»×ãµØ·½»¶ÓÖ¸Õý£¬Ð»Ð»¡£
ADOOperate.H
//////////////////////////////////////////////////////////////////////
// ......
ÔÚASP.NETÖе÷ÓÃEXCEL×é¼þµÄʱºò,Èç¹ûûÓÐÅäÖÃDCOMÖÐEXCELȨÏÞÎÊÌâ,½á¹û³ÌÐò»á±¨:Access is denied.
½â¾öµÄ·½·¨ÓÐÁ½ÖÖ£º
µÚÒ»ÖÖ£¬ÔÚweb.configÖÐÉèÖÃÒ»¸ö½Úµã.
<identity impersonate="true" />
²»¹ýÕâÖÖ·½·¨Ö»Äܽâ¾ölocalµçÄÔÉϵÄExcel Access is deniedµÄÎÊÌâ
Èç¹ûÊÇ·þÎñÆ÷µÄ»°,Óпͻ§»ú·ÃÎÊÒ³ÃæµÄʱºò, ......
class Point
@x = 1
@y = 2
def initialize(x,y)
@x,@y = x,y
end
end
´úÂëÖеÄ@x£¬@yΪʵÀý±äÁ¿£¬ÊµÀý±äÁ¿Ö»¶ÔselfµÄ»·¾³Æð×÷Óã¬Òò´ËinitializeÍâÃæµÄ@x=1£¬@y=2Ö»¶ÔÀà±¾ÉíÆð×÷Ó㬶ø·½·¨ÄÚ²¿£¬µÄ@x£¬@yÊǶԶÔÏóµÄʵÀýÆð×÷Óõġ£
class Point
include Enumerable
def initialize(x ......
ʹÓà will_paginate ½øÐзÖÒ³ºÍ¼òµ¥²éѯ
ÔÚÃüÁîÐÐÏÂʹÓà gem install will_paginate ÃüÁ³öÏÖÏÂÃæ½á¹û°²×°³É¹¦
´ò¿ª books_controller.rb (Äã×Ô¼ºµÄ¿ØÖÆÆ÷)
×¢Ê͵ô²éÕÒÈ«²¿µÄ·½·¨£¬Ê¹ÓÃÏÂÃæµÄ·½·¨£¬ÒѾ¼¯³É¸ù¾Ýtitle½øÐвéѯ
Ruby´úÂë
#@books = Book.all
@books = Book.pagina ......
RESTfulµÄ»¯Éí----resource
µ±È»£¬¹â°ÑRESTfulºÍresource³¶µ½Ò»ÆðËÆºõÏ൱ÏÁÒ壬ÔÚRailsÖУ¬ActionController::Resources³éÏóÁËRESTÖеÄResource£¬ÕâÀÎÒ²»Ì¸RESTµÄÏà¹Ø¸ÅÄî£¬ÍøÉÏ×ÊÁÏÒ»´óÛç¡£ÎÒÃǾÍÀ´¿´¿´RailsÖÐÊÇÈçºÎͨ¹ýResourceÀ´ÇáËÉ£¬¼ò±ãµÄÍê³ÉRESTfulÓ¦Óõİɡ£
resources.rb
Ô´´úÂë ......