Daha çox

ArcObjects / Oracle12c / EZCONNECT


ArcObjects və EZCONNECT vasitəsilə Oracle12c ilə əlaqə qurmaqda çətinlik çəkirəm.

İndiyədək nəticələr:

• * .sde faylı istifadə edərək ArcCatalog 10.2.2 vasitəsilə əlaqə qura bilər. (EZCONNECT)

• * .sde faylı istifadə edərək ArcObjects vasitəsilə əlaqə qura bilər. (WorkspaceFactory2.OpenFromFile)

• Bir əlaqə xüsusiyyəti dəstini istifadə edərək ArcObjects vasitəsilə əlaqə qurmaq olmur. (WorkspaceFactory2. Açıq)

• Bir əlaqə simli istifadə edərək ArcObjects vasitəsilə əlaqə qurmaq olmur. (WorkspaceFactory2.OpenFromString)

Kimsə hər hansı bir göstərici təklif edə bilər?

Dəstəkləyən məlumat:

• EZCONNECT-də Oracle FAQ

http://www.orafaq.com/wiki/EZCONNECT

• Easy Connect-də ESRI Blogu

http://blogs.esri.com/esri/supportcenter/2012/10/10/easy-connect-connecting-to-arcsde-just-got-easier/

EDİT - Heç bir səhv atılmır, bu .NET eklenti heç bir xəbərdarlıq və ya səhv olmadan ArcMap-ı bağlayır. VS2012-də də uğurlu ayıklama olmadığı üçün.

GÜNCELLEME - Yaxşı, düşünürəm ki, əksər hallarda həll olundu; əlaqə xüsusiyyətlərindən sui-istifadə. Aşağıdakı kod parçaları işıq saçmalıdır.

Beləliklə, Easy Connect simli daxil olmaqla, lazım olan bütün db əlaqə xüsusiyyətlərini proqramlı şəkildə ötürə bilər.

Bununla birlikdə, verilənlər bazası bağlantısı informasiya qutusunun göründüyü və əlaqəni başlatmaq üçün əl ilə "OK'd" olmalıdır bir problemim var.

Verilənlər Bazası Bağlantısı dialoqu əvvəllər Oracle11g-yə qoşulmaq üçün “ənənəvi” əlaqə xüsusiyyətlərindən istifadə edərkən görünmürdü.

Beləliklə, hər hansı bir düşüncəniz varsa, mən hamısının qulaqlarıyam.

/// ƏVVƏL CODE SNIPPET /// "Ənənəvi" əlaqə xüsusiyyətlərindən istifadə. /// Bir SDE əlaqə xassəsi dəsti yaradın və əlaqə xüsusiyyətləri ilə doldurun. IPropertySet propertySet = yeni PropertySetClass (); propertySet.SetProperty ("SERVER", "server"); propertySet.SetProperty ("INSTANCE", "instansiya"); // Oracle Easy Connect simli ötürməyə çalışdığım yer propertySet.SetProperty ("DATABASE", ""); propertySet.SetProperty ("USER", "user"); propertySet.SetProperty ("ŞİFRƏ", "keçid"); propertySet.SetProperty ("VERSION", "sde.DEFAULT"); /// Mülkiyyət dəstindən istifadə edərək coğrafi məlumat bazasını açın. IWorkspace iş sahəsi = workspaceFactory.Open (propertySet, 0); /// SONRA CODE SNIPPET /// Oracle “Easy Connect” əlaqə simli istifadə olunur. /// DB əlaqə xassəsi dəsti yaradın və əlaqə xüsusiyyətləri ilə doldurun. IPropertySet propertySet = yeni PropertySetClass (); propertySet.SetProperty ("DATABASE_CONNECTION_PROPERTIES", "user / pass @ server: port / service"); // bu Oracle Easy Connect sətri //propertySet.SetProperty("DBCLIENT "," oracle "); //propertySet.SetProperty("USER "," user "); propertySet.SetProperty ("ŞİFRƏ", "keçid"); /// Xüsusiyyət dəstini istifadə edərək verilənlər bazasını açın. IWorkspace iş sahəsi = workspaceFactory.Open (propertySet, 0);

Sualın niyə "aşağı səs" aldığından əmin deyiləm. Konstruktiv giriş üçün təşəkkür edirik. Sualı başa düşənlər və ya oxşar bir problemlə üzləşənlər üçün, gəlinən, sınaqdan keçirilmiş və işlək olduğu sübut edilmiş həll yolları.

Xülasə

  • Bağlantı xüsusiyyəti parametri adları idi.

  • DB_CONNECTION_PROPERTIES ilə DATABASE_CONNECTION_PROPERTIES

  • Bəzi coğrafi verilənlər bazası nümunələri “DB_CONNECTION_PROPERTIES” istifadə edərkən, kömək sənədləri / təsviri “DATABASE_CONNECTION_PROPERTIES” istifadə edir.

  • Oxşar senarilərdə DATABASE_CONNECTION_PROPERTIES deyil, DB_CONNECTION_PROPERTIES istifadə edin.

    // HEDEF SOLUTION // Oracle “Easy Connect” əlaqə simli istifadə. // Bağlantı xüsusiyyətləri ilə bir DB əlaqə sətri yaradın. string connString = "DB_CONNECTION_PROPERTIES = server: port / service; DBCLIENT = oracle; USER = user; password = pass"; // Bağlantı sətrindən istifadə edərək verilənlər bazasını açın. IWorkspace iş sahəsi = workspaceFactory.OpenFromString (connString, 0);

// ALTERNATIVE SOLUTION 1 // Oracle “Easy Connect” əlaqə xüsusiyyətlərindən istifadə. // DB əlaqə xassəsi dəsti yaradın və əlaqə xüsusiyyətləri ilə doldurun. IPropertySet propertySet = yeni PropertySetClass (); propertySet.SetProperty ("DB_CONNECTION_PROPERTIES", "user / pass @ server: port / service"); propertySet.SetProperty ("DBCLIENT", "oracle"); propertySet.SetProperty ("USER", "user"); propertySet.SetProperty ("ŞİFRƏ", "keçid"); // Xüsusiyyət dəstini istifadə edərək verilənlər bazasını açın. IWorkspace iş sahəsi = workspaceFactory.Open (propertySet, 0);

// ALTERNATIVE SOLUTION 2 // “ənənəvi” əlaqə xüsusiyyətlərindən istifadə. // Bir xüsusiyyət dəsti yaradın və əlaqə xüsusiyyətləri ilə doldurun. IPropertySet propertySet = yeni PropertySet (); propertySet.SetProperty ("SERVER", "server"); propertySet.SetProperty ("INSTANCE", "sde: oracle $ server: port / service"); propertySet.SetProperty ("DATABASE", ""); propertySet.SetProperty ("USER", "user"); propertySet.SetProperty ("ŞİFRƏ", "keçid"); // Xüsusiyyət dəstini istifadə edərək verilənlər bazasını açın. IWorkspace iş sahəsi = workspaceFactory.Open (propertySet, 0);


Videoya baxın: How to Create Oracle ArcSDE geodatabase ESRI Part 1 For Part 2 visit (Oktyabr 2021).