久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5176|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

通過(guò)WEBSERVICE連接ORACLE

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-25 23:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
經(jīng)過(guò)一周的IIS折騰,一周的ORACLE折騰。在經(jīng)過(guò)今天下午的一點(diǎn)小曲折,終于在VS2005下對(duì)MFC引用WEBSERVICE連接ORACLE數(shù)據(jù)庫(kù)取得了初步的成功。現(xiàn)總結(jié)一下:

這個(gè)過(guò)程分三步走:
一創(chuàng)建WEBSERVICE(C#)
二 C#連接ORACLE (PS:我開(kāi)發(fā)WEBSERVICE用的是C#);
三 VS下MFC程序調(diào)用WEBSERVICE。
現(xiàn)將其中碰到的問(wèn)題及解決過(guò)程記錄如下:
一 IIS的配置及WEBSERVICE的初實(shí)例:
剛開(kāi)始就需要用到IIS及WEBSERVICE,折騰了我一周,深表惡心。關(guān)于IIS及WEBSERVICE的問(wèn)題,在上兩篇博
客中已做過(guò)介紹;
二 ORACLE數(shù)據(jù)庫(kù)的初步認(rèn)識(shí):
ORACLE也折騰我將近一周,也很惡心,遠(yuǎn)遠(yuǎn)沒(méi)有SQL SERVER用起來(lái)順手。我目前的認(rèn)識(shí)有限,網(wǎng)上說(shuō)它是多
進(jìn)程多線程的,而SQLSERVER是單進(jìn)程,多線程的。ORACLE默認(rèn)的有許多用戶,(例如SCOTT,SYS。)在這些
 用戶中有它們各自的表,索引之類(lèi)的。
三 C#連接ORACLE:
 關(guān)于連接代碼,網(wǎng)上多的是,在此我也寫(xiě)在這吧。
  頭部添加下面兩句話
  using System.Data;
using System.Data.OracleClient;
  添加一個(gè)按鈕,添加代碼如下:
  string ConnectionString = "Data Source=orcl;user=scott;password=wu001";//寫(xiě)連接串
OracleConnection conn = new OracleConnection(ConnectionString);//創(chuàng)建一個(gè)新連接
try
{
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into test values(4,'f')";//在這兒寫(xiě)sql語(yǔ)句
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message); //如果有錯(cuò)誤,輸出錯(cuò)誤信息
}
finally
{
conn.Close(); //關(guān)閉連接
}
我需要說(shuō)明三點(diǎn):
 1 添加using System.Data.OracleClient;這句話,如果你直接寫(xiě)的可能是沒(méi)有的。按如下方法添加即可,在  項(xiàng)目名稱上點(diǎn)右鍵,添加引用,在.NET選項(xiàng)卡找到System.Data.OracleClient,確定即可,然后再在頭部添
  加using System.Data.OracleClient;
2 最好寫(xiě)上MessageBox.Show(ee.Message);這句話,因?yàn)槿绻B接不成功出現(xiàn)異常,這句話即可提示你錯(cuò)誤在  那里,百度就O了。在我做的過(guò)程中,幫了我大忙。
  然后把代碼寫(xiě)在WEBSERVICE的頁(yè)面即可,上面的代碼是我在C#的WINDOWS應(yīng)用程序中調(diào)試的,我確保無(wú)誤后  直接簡(jiǎn)化如下,寫(xiě)在WERSERVICE的頁(yè)面里。
  [WebMethod]
public void LinkOracle()
{
    string ConnectionString = "Data Source=orcl;user=scott;password=wu001";//寫(xiě)連接串
OracleConnection conn = new OracleConnection(ConnectionString);//創(chuàng)建一個(gè)新連接
conn.Open();
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "insert into test values(4,'f')";//在這兒寫(xiě)sql語(yǔ)句
cmd.ExecuteNonQuery();
  }
 不要以為我這段代碼不夠健壯,可是如果沒(méi)錯(cuò)的話就不用考慮健壯性的問(wèn)題。然后添加開(kāi)始生成網(wǎng)站,發(fā)布網(wǎng)站即可。我用VS自帶的HTTP方法調(diào)用方法是沒(méi)錯(cuò)的。可是用MFC添加引用時(shí)就不行了。糾結(jié)了10分鐘,回來(lái)再在IIS的添加虛擬目錄后,在此瀏覽就錯(cuò)了。后面的介紹具體的解決辦法,耐心耐心,哈哈。
 3 string ConnectionString = "Data Source=orcl;user=scott;password=wu001";的具體解釋:
   DataSource 即為默認(rèn)的全局?jǐn)?shù)據(jù)名。建議大家在裝ORACL的時(shí)候就創(chuàng)建數(shù)據(jù)庫(kù)。在安裝目錄下的的NETWORK里的ADMIN里的tnsnames.ora文件中,用記事本打開(kāi)。我的內(nèi)容如下:DataSource即為這里的ORCL,寫(xiě)上去即可。
# tnsnames.ora Network Configuration File: D:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = abae3bcbcc0c47e)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
4 在虛擬目錄中,瀏覽servece.asmx時(shí),報(bào)錯(cuò),需要oracle客戶端8.7.1上以上的版本.不要驚慌,按如下方法解決即可.
System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本。

說(shuō)明: 執(zhí)行當(dāng)前 Web 請(qǐng)求期間,出現(xiàn)未處理的異常。請(qǐng)檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。 異常詳細(xì)信息: System.Exception: System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本。
文件夾沒(méi)有顯示'安全’,按照如下操作即可調(diào)出。
第一種方法:打開(kāi)我的電腦——工具——文件夾選項(xiàng)——查看——使用簡(jiǎn)單文件夾共享前的對(duì)勾取掉一切就ok
第二種方法:WIN+R打開(kāi)運(yùn)行——輸入secpol.msc-----本地策略——安全選項(xiàng)——網(wǎng)絡(luò)訪問(wèn)——本地用戶共享安全模式——改為經(jīng)典就ok!
要解決以上問(wèn)題,只要給Authenticated Users 組加上訪問(wèn)Oracle Home目錄的權(quán)限即可
1、以Administrator權(quán)限登錄Windows
2、啟動(dòng)Window 資源瀏覽器找到ORACLE_HOME目錄,如C:\Oracle\ora92
3、右鍵彈出菜單,選擇該目錄共享與安全(Win2000下要點(diǎn)擊屬性)
4、點(diǎn)擊 “安全” 頁(yè)簽
5、在組和用戶名稱列表中點(diǎn)擊“Authenticated Users” 項(xiàng).
6、在該用戶的權(quán)限列表中,將“讀取和運(yùn)行”的選擇框置為不選中狀態(tài)
7、再次點(diǎn)擊“讀取和運(yùn)行”的選擇框,將其設(shè)置為選中狀態(tài)
8、點(diǎn)擊“高級(jí)”按鈕并在權(quán)限項(xiàng)目中確定“Authenticated Users” 是否擁有“讀取并運(yùn)行”權(quán)限并應(yīng)用于“該文件夾,及子文件夾和文件”. 如果不是,雙擊這樣,并確保權(quán)限可以“應(yīng)用于” “該文件夾,及子文件夾和文件”. 該項(xiàng)非常重要你一定要核查.
9、點(diǎn)擊“確定” 按鈕
10、重啟動(dòng), 以使得所有的修改生效.

=============================================================================
注意,權(quán)限設(shè)置好后,不用機(jī)器重啟的,直接IIS重啟下就行了,方法,開(kāi)始-運(yùn)行-CMD-IISRESET




四 MFC應(yīng)用程序引用WEBSERVICE:
  我用的VS2005,沒(méi)出現(xiàn)網(wǎng)上說(shuō)的添加WEB引用是灰色的問(wèn)題。在項(xiàng)目名稱上點(diǎn)擊右鍵,添加WEB引用即可。
  因是我是在本機(jī)上,所以點(diǎn)擊查看本地的引用即可。輸入引用名,確定。而后,會(huì)有生成的對(duì)應(yīng)的.h文件,
  拖入頭文件中.我們?cè)谛┰倥粋(gè)按鈕,在其對(duì)應(yīng)的函數(shù)中添加如下代碼:
  CoInitialize(NULL);
HRESULT hr = S_OK;
CService *ws = new CService;
hr = ws->LinkOracle();
if (S_OK==hr)
{
AfxMessageBox("insert ok");
}
else
{
AfxMessageBox("insert error");
}
CoUninitialize();
當(dāng)然.cpp頭中應(yīng)該包含WEBSEVICE對(duì)應(yīng)的頭文件,如下:
#include "WebService.h"
using namespace Service;
到此,一個(gè)用VS下用webservice連接oracle即O了.嚴(yán)謹(jǐn)起見(jiàn),哈哈,補(bǔ)充一下:
我已解鎖scott用戶,在其下建表test,建表命令如下:create table test(id number(4),name varchar2(5)).
在用oracle創(chuàng)建數(shù)據(jù)庫(kù)時(shí)提示有口令管理,那時(shí)解鎖用戶即可,可設(shè)置密碼(我的密碼是wu001).我用的是10g,oracle惡心的是密碼必須包含字母.
這樣就O拉.
打開(kāi) sql/plus,用SCOTT進(jìn)入,輸入select *from test;()


主機(jī)字符串這行不用管,我也不知道是干啥的.那位清楚,可給我留言說(shuō)聲,歡迎交流哪.
即可看到插入成功拉.
貼個(gè)圖:


以上是我的一些體會(huì),希望對(duì)想學(xué)習(xí)的人有所幫助,大家相互交流,一起進(jìn)步哈。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久视频免费看 | 亚洲最大的黄色网址 | 国产成人a亚洲精品 | 午夜国产羞羞视频免费网站 | 日日干天天操 | 亚洲欧美日韩精品 | 久久99精品久久久久久国产越南 | 在线观看日本网站 | 久久国产精品99久久久久久丝袜 | 国产传媒视频在线观看 | 在线播放国产视频 | 日韩综合在线 | 久久精品16 | 国产91丝袜在线播放 | 日韩中文字幕区 | 一区二区日本 | 色播视频在线观看 | 午夜电影网| 国产片侵犯亲女视频播放 | 国产乱码精品一区二区三区av | 日本福利在线观看 | 一级在线 | 视频一区二区三区中文字幕 | 国产精品我不卡 | 日韩欧美亚洲综合 | 欧美一区二区在线播放 | 午夜丰满寂寞少妇精品 | 午夜伦理影院 | 天天干天天插天天 | 中文字幕av第一页 | 人人爽人人草 | 国产福利小视频 | 欧美在线小视频 | www.久久久久久久久久久久 | 精品久久久久一区 | 国产精品久久久亚洲 | 久久亚洲综合 | 成人美女免费网站视频 | 久在线| 国内精品久久久久久影视8 最新黄色在线观看 | 久久综合影院 |