2014-03-04 18 views
1

我已經做了很多關於此的搜索,但似乎無法獲得Macromedia與精簡Oracle JDBC驅動程序的限制清單,因爲它們有很大的差異,我不理解。Coldfusion oracle jdbc Macromedia vs Thin

我有連接到相同的數據庫中的兩個數據源,使用相同的憑證在CF 9.0.1:

    • JDBC URL = JDBC:預言:薄
    • 驅動程序類= oracle.jdbc.OracleDriver

  1. 的Macromedia

    • JDBC URL = JDBC:Macromedia的:預言
    • 驅動類= macromedia.jdbc.MacromediaDriver

在插入查詢

<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不存在)

  • Macromedia的數據源是OK


在一個dbinfo呼叫

var columnList = new dbinfo(datasource="#application.DSN#" 
          , table="table1").columns(); 
  • 細細的數據源是好的

  • 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'的參數類型

  • Macromedia的數據源是OK


是否有差異或利弊/我能參考的利弊清單?或者這只是我享受的試用錯誤?我應該只有兩個不同的數據源,並在不工作時根據需要調用它們?任何見解都會被讚賞。

+0

你從哪裏得到Macromedia驅動程序?這是ColdFusion 9 Standard還是Enterprise? –

+0

ColdFusion 9.01仍將其驅動程序列爲Macromedia。沒有什麼特別的要做 –

+0

@iKnowKungFoo我有標準的本地安裝,並且能夠配置它,所以兩個 –

回答

1

是否有我可以參考的差異或優點/缺點列表? - 我懷疑您需要閱讀每個驅動程序的文檔以獲取該信息。請參閱Oracle documentation以瞭解您安裝的瘦數據源驅動程序的特定版本。 ColdFusion爲其驅動程序提供了DataDirect。 ColdFusion 9.0.1 comes with DataDirect version 4.0 SP 1 drivers。請參閱DataDirect docs for 4.0

我對你給出的具體例子的想法。

上插入查詢

  • 細細的數據源失敗(給錯誤ROWID不存在)

  • Macromedia的數據源是OK

也許瘦數據源返回一個不同於的變量。在您撥打<cfquery>後,我會做一個<cfdump var="#r#">,看看您有什麼可用的。

在一個DBINFO呼叫

  • 細細的數據源是OK

  • Macromedia的數據源從不處理,最終給出了一個CFOUTPUT超時錯誤

不是真的確定這裏發生了什麼,因爲你會期待這個電話工作。我會嘗試一個更通用(更高級別)的呼叫dbinfo,看看有什麼可用的。再次使用<cfdump>來檢查返回的值。從dbnames()開始,看看你得到了什麼。然後開始挖掘返回的內容。這實際上只是爲您提供信息,不應該影響您的生產決策,因爲您不會在那裏使用dbinfo。對?

在與RC1光標

  • 存儲過程中的數據源薄錯誤,錯號碼或類型的呼叫'schema.myproc的論點

  • Macromedia的數據源是OK

薄數據源驅動程序不發支持包或存儲過程中的引用遊標。它says so in the ColdFusion docs

CFML支持Oracle 8和9參考遊標類型,它通過引用傳遞參數。通過這種方式傳遞的參數可以在一個應用程序的執行過程中從內存中分配和釋放。要在包或存儲過程中使用引用遊標,請使用cfprocresult標記。這會導致ColdFusion JDBC數據庫驅動程序將Oracle引用遊標放入結果集中。 (您不能使用這種方法與Oracle瘦客戶機JDBC驅動程序。

我會建議使用附帶的ColdFusion的DataDirect的驅動程序。至少在他們不提供某種你需要的功能之前。直到那時我纔開始尋找其他的選擇。這將使您保持Adobe的支持。一旦你開始使用第三方軟件,他們就不能支持它們。

+0

進行開發1)我已經拋棄了瘦源結果,所有標準,沒有標識值返回2)同意,但發現奇怪,它只適用於瘦3)我知道rc1遊標沒有提供通過精簡,只是在列表差異的上下文中使用它,我會選擇哪一種 –

+0

由於單節點配置,oracle附帶的oracle數據間接驅動程序不支持oracle RAC集羣,我最終使用了macromedia jdbc –

+0

Macromedia jdbc驅動程序是datadirect? –