日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OCCI读写Oracle Spatial的SDO_Geometry

發布時間:2025/5/22 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OCCI读写Oracle Spatial的SDO_Geometry 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.使用Oracle OTT工具生成對應的C++類。1.1設置ORACLE_HOME:服務器端安裝目錄。設置客戶端安裝目錄,提示什么java錯誤。暫時不管了。1.2寫一個intype文件test.typ放在D盤根目錄。TYPE MDSYS.SDO_GEOMETRY1.3OTT語法如下:可以打入ott顯示命令提示。ott attraccess=private code=cpp cppfile=spatial_classes.cpp?hfile=spatial_classes.h intype=spatial.typ?mapfile=spatial_classes_map.cpp mapfunc=RegisterClasses userid=MDSYS/password
在命令行下進入你intype.typ的目錄,生成的文件就在這個目錄。2.生成sdo.h(.cpp),map.h(.cpp)map類是用來注冊sql的,否則會提示:ORA-32162:讀/寫SQL的方法未注冊注冊的方法是在連接數據庫前加上一句:CMap(pEnv);低版本用:RegisterClasses(pEnv);3.讀SDO_GEOMETRYCSdo *pSdo = (CSdo *)rs->getObject(1);select shape from table
sdo_point里保存的是Number類型的數據。
可以用float f = float(number);4.寫SDO_GEOMETRY可以直接用sql語句:update tlbtest set shape=MDSYS.SDO_GEOMETRY(3003,NULL,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),MDSYS.SDO_ORDINATE_ARRAY(100,200))也可以構建CSdo sdo;stmt->setObject(sdo);這次博文寫得太粗糙,這不是我的風格,家里沒安裝oracle憑印象記下來,費了好大勁得來這些經驗。url:http://greatverve.cnblogs.com/archive/2012/11/30/occi-sdo_geometry.html參考:
用OTT翻譯Oracle Spatial中的類型

OTT是Oracle數據庫的數據類型翻譯工具,可以把Oracle中的數據類型翻譯為C++類。

在使用Oracle Spatial的時候,需要通過OTT把MDSYS方案中有關空間數據結構翻譯為C++類。

在網上找了半天有關OTT使用的方法,基本上都說的不清不楚。

沒辦法,自己看Oracle的b14294文檔——是關于OCCI的,里面有講到OTT的使用。

OTT的命令如下:

ott attraccess=private code=cpp cppfile=spatial_classes.cpp hfile=spatial_classes.h

intype=spatial.typ mapfile=spatial_classes_map.cpp mapfunc=RegisterClasses userid=MDSYS/password

其中,intype=spatial.typ這一項參數可以省去。如果省去就會把user方案中的所有數據類型都翻譯出來。

因此,可以簡單自己定義一個typ文件,只把需要的幾個類型翻譯出來就可以了。

最簡單的typ文件象下面這樣就可以了:

TYPE MDSYS.SDO_GEOMETRY
TYPE MDSYS.SDO_POINT_TYPE

以上內容用文本文件保存為spatial.typ,然后用上門的ott命令,就會生成spatial_classes.h、spatial_classes.cpp、spatial_classes_map.h、spatial_classes_map.cpp四個文件。

在vc工程中通過使用occi和這四個文件就可以進行Oracle Spatial編程了。

VS2005中用OCCI訪問Oracle Spatial的幾個常見錯誤

網上有關使用OCCI訪問Oracle Spatial的資料比較少,在用VS2005編寫occi程序時出現了好幾個Oracle錯誤,經過在網上淘,總算逐個解決了。結果很簡單,過程很艱難,作一個小結還是有必要的。

錯誤1:ORA-21301:沒有按對象模式進行初始化

原因:要用OBJECT模式初始化環境才能操作SDO_GEOMETRY空間對象

網上很多關于OCCI示例代碼中都是:

Environment *pEnv = Environment::createEnvironment (Environment::DEFAULT);

但是要操縱SDO_GEOMETRY空間對象,應該用OBJECT模式:

Environment *pEnv = Environment::createEnvironment (Environment::OBJECT);

錯誤2:ORA-32162:讀/寫SQL的方法未注冊

原因:用ott生產有關oracle spatial的c++代碼時,有一個class map的文件,例如spatial_classes_map.h、spatial_classes_map.cpp。這個文件里有一個RegisterClasses函數,用于注冊生產的spatial類(SDO_GEOMETRY等)中讀寫SQL的方法。因此在創建數據庫連接之前,要進行注冊:

RegisterClasses(pEnv);

錯誤3:OCI-22625

關于這個錯誤,沒有給出具體信息。搜遍了百度、google、yahoo,找遍中外網站,唯一的答案是:這是Oracle occi的一個bug,在9201版之后已經解決了。

暈啊,我用的vs2005、orcle 0cci for vc8 10.2.0.3。不是早就解決了嗎?折騰了一個下午,反復檢查代碼,用各種方式測試,實在沒發現什么問題。后來改用release模式編譯運行,咦,沒有出現這個錯誤。然后對比檢查vs中debug和release的編譯環境,還是沒發現問題,debug模式下還是出現這個錯誤。

反復在網上找,沒有其他的信息,尋思還是應該是oracle的bug。最后總算在oracle網站上發現occi 10.2.0.3還有兩個patch,分別是patch 10和patch 13。下載,把編譯庫改為patch 13的lib,編譯運行,問題解決!

?

總結

以上是生活随笔為你收集整理的OCCI读写Oracle Spatial的SDO_Geometry的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91成人亚洲 | 天天爽夜夜爽一区二区三区 | 久久久久久久久久91 | 黄色应用在线观看 | 国语对白91 | 天天舔天天摸 | 久久久噜噜噜久久中文字幕色伊伊 | 综合网av | 亚洲国产三级 | 日本少妇ⅹxxxxx视频 | 日b视频免费看 | 手机看片午夜 | 亚洲 激情 | 日本免费专区 | 久色成人| 蜜桃精品视频在线观看 | 波多野吉衣在线视频 | 亚洲一区二区人妻 | 污污内射在线观看一区二区少妇 | 亚洲精品一区二三区不卡 | 五月婷网 | 先锋影音久久 | 99综合久久 | 网红福利视频 | 日韩激情网站 | 少妇高潮一区二区三区 | 麻豆一区二区99久久久久 | 秋霞电影一区二区 | 黄色片特级 | 少妇av一区 | 日韩av一区二区在线观看 | 岛国av不卡 | 欧美日一区二区三区 | 欧美熟妇交换久久久久久分类 | 色欲久久久天天天综合网精品 | 久久久久久久久久网 | 黄色录像a级片 | 男女日批在线观看 | 亚洲最大的网站 | 老女人人体欣赏a√s | 欧美xxxxx牲另类人与 | 日韩精品一区二区电影 | 97干在线 | 147人体做爰大胆图片成人 | 国产成年无码久久久久毛片 | 午夜视频导航 | 精品福利片| 自拍偷拍第二页 | 婷婷激情综合 | 国产久草视频 | 欧美粉嫩videosex极品 | 久久久国产精品人人片 | 四虎av影视 | 69精品久久久久久久 | 成年人视频在线观看免费 | 超碰av在线播放 | 37p粉嫩大胆色噜噜噜 | 亚洲成av人片在线观看无码 | 超碰98在线观看 | 亚洲熟妇无码一区二区三区导航 | 91大神一区二区 | www.777色 | 夜夜精品视频 | 精品国自产在线观看 | 国av在线| 一级特黄免费视频 | 国产亚洲片 | 无码少妇一区二区 | 欧美性俱乐部 | 日本毛片视频 | 秋霞影院午夜丰满少妇在线视频 | 欧美体内谢she精2性欧美 | 操人视频在线观看 | 99激情网| 精品视频免费观看 | 国产成人精品综合在线观看 | 久久精品视频中文字幕 | 男女xx网站| 亚洲国产视频在线观看 | 国产黄色片av| 91精品影视 | 1024久久| 日本在线看片 | 在线观看成年人网站 | 亚洲一二三av | jizzjizzjizz国产| 国产三级按摩推拿按摩 | 澳门av在线 | 射久久 | 91 高清 在线 制服 偷拍 | 999av视频 | 国产av一区不卡 | 一级做a爱片| 性色一区二区 | 日本裸体网站 | 午夜一二三区 | 国产精品对白刺激久久久 | 欧美一区亚洲一区 | 麻豆网站免费观看 |