[x]
Posted via EE Mobile

Search, ask, and monitor your questions on the go with EE Mobile. Visit Experts Exchange from your mobile device and never be out of touch again.

Question
[x]
Attachment Details
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

6.6

Trying to use DCOM to get data from a Proprietary DB - ASP.NET C#

Asked by bcolladay in DCOM, C# Programming Language, Databases Miscellaneous

Tags: DCOM OLE C# ASP .NET

I am trying to use data from a DCOM object called Commence.DB  I keep getting DCOM Exceptions HRESULT errors.  Also I'm not sure I am even on the right track as far as using the right method.  The examples of script provided by the DB company are straight .asp files and I don't translate well.  I'm not sure if the example script is complete but I can't seem to replicate it in ASP.NET C#.

Below is the sample asp and my attempts at C#
My Code manages to open thedesktop version of the program that uses the database and then displays version and other information about the program in my web page.

I especially interested in the Set  XXXX = CreateObject("Allure.DB) part.  What kind of object should I use in C# to do the same thing.  I am looking for just a little more info to get me going again.  I have hit a wall.

My code has a lot of commented stuff that I have tried at various time.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
their sample asp script:
<%
'<!-- file: allure.inc -->
dim objPim
dim objCursor
 
Sub  AllureConnnect
	Set objPim = CreateObject("Allure.DB")	
End Sub
 
' requires strName param
Sub  AllureConnnectCategory
	Set objPim = CreateObject("Allure.DB")	
 
	Set objCursor = objPim.GetCursor(0, strName, 0)
end Sub
 
' requires strName param
Sub  AllureConnnectView
	Set objPim = CreateObject("Allure.DB")	
 
	Set objCursor = objPim.GetCursor(1, strName, 0)
end Sub
 
sub AllureDisconnect
	set objCursor = nothing
	set objPim = nothing
end sub
 
' get indirect field value
' input: strCategory; name of the category
'		 strField; name of field
'        strItem; name of the item
' output: Dim strValue; field value on exit
		
		
Function AllureGetConnectedValue(strCategory, strField, strItem)
	if strItem = "" then
		AllureGetConnectedValue = "&nbsp;"
		exit Function
	end if
 
    dim objConnCursor
	Set objConnCursor = objPim.GetCursor(0, strCategory, 0)  
	
	' get name of the NAME field
	dim objConnRowset
	set objConnRowset = objConnCursor.GetQueryRowset(1, 0)
	
	dim strConnectionNameField
	strConnectionNameField = objConnRowset.GetColumnLabel(0, 0)
	set objConnRowset = nothing
	
	' reset back to the first item
    objConnCursor.SeekRow 0, 0
	
	' filter for the single connected item anme
    dim connFilter 
    connFilter = "[ViewFilter(1, F,, """ & strConnectionNameField & """, Equal To, """ & strItem & """)]"
    
    objConnCursor.SetFilter connFilter, 0	
    
    ' anything connected?
    dim connCount
    connCount = objConnCursor.RowCount
    if connCount <= 0 then
		' no
		AllureGetConnectedValue = "&nbsp;"
    else	
		'yes 
		dim connColid
		set objConnRowset = objConnCursor.GetQueryRowset(1, 0)
		connColid = objConnRowset.GetColumnIndex(strField, 0)
		AllureGetConnectedValue = objConnRowset.GetRowValue(0,connColid,0)
	end if
	
	set objConnRowset = nothing
	set objConnCursor = nothing
end Function
 
' strCategory: name of related category
' strField: field to use from the related categry    
' ItemsList is a string that contains the names of related items in the 'strCategory table,
'	, delimited by comma (,)
public function FormatRelatedItems(strCategory, strField, ItemsList)		
	if ItemsList = "" then
		FormatRelatedItems = ""
		exit function
	end if
	
	RelatedArray = Split(ItemsList, ",")
	count = Ubound(RelatedArray)
 
	for j = 0 to count				
		if j > 0 then
			sval = sval & ", <br>"
		end if
				
		sval = sval & AllureGetConnectedValue(strCategory, strField, RelatedArray(j))				
	next
		
	FormatRelatedItems = sval
end function
'<!-- endfile: allure.inc -->
%>
 
 
 
 
My hacky attempt at a c# version
 
{
        //nothing is really happening here yet
        //OleDbDataAdapter TestCommneceDA = new OleDbDataAdapter();
        //ADODB.Connection conn = new ADODB.Connection();
        //ADODB.Recordset Rs = new Recordset();
        //DataSet TestCommenceDS = new DataSet();
        ////conn.Open("DSN=Cdm2", "", "", 0);
        //OleDbConnection CMconn = new OleDbConnection();
        //CMconn.ConnectionString = "Provider=Commence.DB; Data Source=Cmd2";
        
        
        //this is the only part that is useful later I hope to create datasets from views
        int mode = 1;
        int flags = 0;
        //I created a View Called People
        string CMview = "People (All)";
        string RevealObject = "";
        FormOA.CommenceDB TestCommenceView = new FormOA.CommenceDB();
        //CommenceDBClass TestCommenceView = new CommenceDBClass();
        try
        {
            //this one gives the DCOM Exception HRESULT if you remove the comment slashes below
            RevealObject = TestCommenceView.GetCursor(mode, CMview, flags).ToString();
            
            //This one will not cause an exception and will display program info
            RevealObject = TestCommenceView.Name.ToString() + "<br />" + TestCommenceView.Path.ToString() + "<br />" + TestCommenceView.RegisteredUser.ToString() + "<br />" + TestCommenceView.Shared.ToString() + "<br />" + TestCommenceView.Version.ToString() + "<br />" + TestCommenceView.VersionExt.ToString();
            RevealObject += "<br />" + TestCommenceView.ToString();
            Label1.Text = RevealObject;
 
        }
        catch (Exception Ex)
        {
            Label1.Text = Ex.Message.ToString();
        }
        
 
         
    }
[+][-]09/03/09 06:52 AM, ID: 25250646Accepted Solution

View this solution now by starting your 30-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

About this solution

Zones: DCOM, C# Programming Language, Databases Miscellaneous
Tags: DCOM OLE C# ASP .NET
Sign Up Now!
Solution Provided By: bcolladay
Participating Experts: 0
Solution Grade: A
 
[+][-]09/02/09 01:18 PM, ID: 25245180Author Comment

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 30-day free trial to view this Author Comment or ask the Experts your question.

 
 
Loading Advertisement...
20091111-EE-VQP-92 - Hierarchy / EE_QW_3_20080625