Coldfusion oracle jdbc Macromedia与精简版

Coldfusion oracle jdbc Macromedia与精简版,oracle,jdbc,coldfusion,coldfusion-9,Oracle,Jdbc,Coldfusion,Coldfusion 9,我对此做了很多搜索,但似乎无法获得Macromedia与精简Oracle JDBC驱动程序之间的限制的清晰列表,因为它们之间存在我不理解的巨大差异 我有两个数据源连接到同一个数据库,使用CF 9.0.1中相同的凭据: 稀薄的 jdbc url=jdbc:oracle:thin 驱动程序类=oracle.jdbc.OracleDriver 宏媒体 jdbc url=jdbc:macromedia:oracle 驱动程序类=macromedia.jdbc.macromedia驱动程序 关于

我对此做了很多搜索,但似乎无法获得Macromedia与精简Oracle JDBC驱动程序之间的限制的清晰列表,因为它们之间存在我不理解的巨大差异

我有两个数据源连接到同一个数据库,使用CF 9.0.1中相同的凭据:

  • 稀薄的

    • jdbc url=jdbc:oracle:thin
    • 驱动程序类=oracle.jdbc.OracleDriver

  • 宏媒体

    • jdbc url=jdbc:macromedia:oracle
    • 驱动程序类=macromedia.jdbc.macromedia驱动程序
  • 关于插入查询

    <cffunction name="create" access="public" output="false" >  
      <cfargument name="allocation_code" required="no"  type="string"/>           
      <cfquery datasource="#application.DSN#" name="qResult" result="r" >
         insert into table1 s
         (s.data)
         values (
            <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.data#">
         )
      </cfquery>
      <cfreturn r.ROWID>
    </cffunction>
    
    • 精简数据源正常

    • Macromedia数据源从不处理,最终给出一个cfoutput超时错误


    在具有RC1游标的存储过程上

    <cfstoredproc procedure="schema.myproc"  datasource="#application.DSN#" > 
        <cfprocparam  type = "IN"
            cfsqltype="cf_sql_varchar" 
            value="#Event.getValue("entityid")#"
            > 
        <cfprocresult name="RC1"> 
    </cfstoredproc>
    
    
    
    • 瘦数据源错误,调用'schema.myproc'时参数的数目或类型错误

    • 宏媒体数据源正常


    是否有我可以参考的差异或优点/缺点列表?或者这只是我喜欢的一个试错?我是否应该拥有两个不同的数据源,并在其中一个数据源不工作时根据需要调用它们?非常感谢您的见解。

    是否有我可以参考的差异或优点/缺点列表我想您需要阅读每个驱动程序的文档才能获得这些信息。有关您安装的精简数据源驱动程序的特定版本,请参阅。ColdFusion附带用于其驱动程序的DataDirect。看

    我对你给出的具体例子的看法

    关于插入查询

    <cffunction name="create" access="public" output="false" >  
      <cfargument name="allocation_code" required="no"  type="string"/>           
      <cfquery datasource="#application.DSN#" name="qResult" result="r" >
         insert into table1 s
         (s.data)
         values (
            <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.data#">
         )
      </cfquery>
      <cfreturn r.ROWID>
    </cffunction>
    
    • 精简数据源失败(给出的错误ROWID不存在)

    • 宏媒体数据源正常

    可能精简数据源返回的变量与
    ROWID
    不同。在您的
    电话之后,我会打一个
    看看您有什么可用的

    在dbinfo调用中

    • 精简数据源正常

    • Macromedia数据源从不处理,最终给出一个cfoutput超时错误

    我真的不知道这里发生了什么,因为你会期待这个电话会起作用。我会尝试对
    dbinfo
    进行更一般(更高级别)的调用,看看有什么可用。再次使用
    检查返回值。从dbnames()开始,看看你得到了什么。然后开始挖掘返回的内容。这实际上只是为您提供信息,不应该影响您的生产决策,因为您不会在那里使用
    dbinfo
    。对吧?

    在具有RC1游标的存储过程上

    <cfstoredproc procedure="schema.myproc"  datasource="#application.DSN#" > 
        <cfprocparam  type = "IN"
            cfsqltype="cf_sql_varchar" 
            value="#Event.getValue("entityid")#"
            > 
        <cfprocresult name="RC1"> 
    </cfstoredproc>
    
    • 瘦数据源错误,调用'schema.myproc'时参数的数目或类型错误

    • 宏媒体数据源正常

    精简数据源驱动程序不支持包或存储过程中的引用游标。它

    CFML支持Oracle 8和9引用游标类型,它通过引用传递参数。通过这种方式传递的参数可以在一个应用程序的执行过程中从内存中分配和释放。要在包或存储过程中使用引用游标,请使用
    cfproclesult
    标记。这导致ColdFusion JDBC数据库驱动程序将Oracle引用游标放入结果集中。(您不能将此方法用于Oracle的ThinClient JDBC驱动程序。


    我建议使用ColdFusion附带的DataDirect驱动程序。至少在他们没有提供你所需要的某种功能之前。直到那时,我才开始考虑其他选择。这将使您获得Adobe的支持。一旦您开始使用第三方软件,他们就无法支持它们。

    您从哪里获得Macromedia驱动程序的?这是ColdFusion 9标准版还是企业版?ColdFusion 9.01仍将其驱动程序列为Macromedia。没什么特别的done@iKnowKungFoo我已经安装了标准本地,并且能够对其进行配置,因此,如果这是本地的,那么您的企业将持续30天,然后它将转换为开发人员版本。所以您有CF附带的Oracle驱动程序,但生产中的Standard无法访问该驱动程序IIRC。您将在生产中使用哪个版本的CF?@iKnowKungFoo我将在生产中使用Enterprise,使用标准开发1)我已转储精简源代码结果,所有标准,没有返回标识值2)同意,但发现奇怪的是它仅适用于精简3)我知道rc1游标无法通过精简,如果只是在列出差异的上下文中使用它,我会选择哪一个呢CF附带的oracle datadirect驱动程序不支持oracle RAC群集,因为单节点配置,我最终使用了macromedia jdbc macromedia jdbc驱动程序是datadirect?