Seth Falcon wrote:
>Paul Gilbert <[EMAIL PROTECTED]> writes: > > > >>(I am not sure if this is a bug or a request for a more understandable >>warning, or possible something obvious I should be posting on r-help.) >> >>I am trying to coerce an new class object to be a DBIConnection and it >>does not work the way I think it should: >> >>R version 2.5.1 (2007-06-27) ... >> > require("RMySQL") # or require("RSQLite") >>Loading required package: RMySQL >>Loading required package: DBI >>[1] TRUE >> > m <- dbDriver("MySQL") # or m <- dbDriver("SQLite") >> > con <- dbConnect(m, dbname="test") >> > dbGetQuery(con, "create table zzz ( >>+ vintage VARCHAR(20) NOT NULL, >>+ alias VARCHAR(20) default NULL, >>+ Documentation TEXT, >>+ PRIMARY KEY (vintage) >>+ );") >>NULL >> > dbListTables(con) >> [1] "zzz" >> > setClass("TSconnection", representation(con="DBIConnection", >>+ vintage = "logical", >>+ panel = "logical") >>+ ) >>[1] "TSconnection" >> > setAs("TSconnection", "DBIConnection", def = function(from) [EMAIL >> > PROTECTED]) >> >> > >I think things work as you expect up until this pint. > > Yes. > > >> > setIs("TSconnection", "DBIConnection", coerce = function(x) >> > [EMAIL PROTECTED]) >> >> > >I'm confused about what you want to do here. If you want TSconnection >to be a DBIConnection, why wouldn't you use inheritance? > > setClass("TSconnection", contains="DBIConnection", ...) > > Perhaps my logic is confused, it wouldn't be the first time, but I am thinking of this as going the "other direction" from inheritance. A MySQLConnection or SQLiteConnection inherits from DBIConnection. To actually use a DBIConnection or my TSconnection it will be necessary to have one of these, so I would need something like setClass("TSconnection", contains="MySQLConnection", ...) to make this work. (Actually, I have not been able to make it work, but that may just be the novice level of my experimenting.) I am hoping I can define the TSconnection using only DBIConnection classes and have it automatically work when one of the database driver packages is added. Otherwise I have to define the TSconnection for each of the driver packages, which is not as clean. Paul >+ seth > > > ==================================================================================== La version française suit le texte anglais. ------------------------------------------------------------------------------------ This email may contain privileged and/or confidential inform...{{dropped}} ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel