Replaced .net user controls under rico3/plugins/dotnet with a single .net server...
[infodrom/rico3] / examples / dotnet / dbConnect.ascx
1 <%@ Control Language="vb" debug="true"%>\r
2 <%@ Import Namespace="System.Data" %>\r
3 <%@ Import Namespace="System.Data.OleDb" %>\r
4 <%@ Import Namespace="System.Data.SqlClient" %>\r
5 <%@ Import Namespace="System.Data.Odbc" %>\r
6 \r
7 <script runat="server">\r
8 \r
9 Public dbConnection as object, accessRights as string\r
10 Public LastErrorMsg as String\r
11 Public defaultDB as String = "Northwind"\r
12 Public const dbDialect     = "Access"   ' What kind of database are we connecting to?\r
13 \r
14 \r
15 Public Function OpenDB()\r
16   try\r
17     select case dbDialect\r
18       case "Access": dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../data/" & defaultDB & ".mdb") & ";User ID=;Password=;")\r
19       case "TSQL":   dbConnection = new SqlConnection("Data Source=MATTSPROBOOK\SQLEXPRESS;User ID=userid;Password=password;Initial Catalog=" & defaultDB & ";")\r
20       case "Oracle": dbConnection = new OleDbConnection("Provider=OraOLEDB.Oracle;Data Source=XE;User ID=" & defaultDB & ";Password=Password;")\r
21       case "MySQL":  dbConnection = new OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=" & defaultDB & ";USER=userid;PASSWORD=password;")\r
22       case "DB2":    dbConnection = new OleDbConnection("Provider=IBMDADB2;Data Source=NORTHWND;Protocol=local;CurrentSchema=SCHEMA;User ID=userid;Password=password;")\r
23     end select\r
24     dbConnection.Open()\r
25     OpenDB=true\r
26   Catch ex As Exception\r
27     OpenDB=false\r
28     LastErrorMsg=ex.Message\r
29   end try\r
30 end function\r
31 \r
32 \r
33 Public function OpenApp()\r
34   OpenApp=false\r
35   if not OpenDB then exit function\r
36   accessRights="rw"  ' CHECK APPLICATION SECURITY HERE  (in this example, "r" gives read-only access and "rw" gives read/write access)\r
37   if IsNothing(accessRights) OrElse left(accessRights,1)<>"r" then\r
38     LastErrorMsg="You do not have permission to access this application"\r
39   else\r
40     OpenApp=true\r
41   end if\r
42 end function\r
43 \r
44 \r
45 Public function OpenGridForm(oLiveGrid as object)\r
46   OpenGridForm=false\r
47   if not OpenApp() then\r
48     response.write("ERROR: " & LastErrorMsg)\r
49     response.end\r
50     exit function\r
51   end if\r
52   oLiveGrid.dbConnection=Me.dbConnection\r
53   oLiveGrid.dbDialect=Me.dbDialect\r
54 \r
55   '-------------------------------\r
56   ' set application-wide defaults\r
57   '-------------------------------\r
58   'oLiveGrid.dataProvider="ricoXMLquery.aspx"\r
59   oLiveGrid.highlightElem="menuRow"\r
60   oLiveGrid.menuEvent="click"\r
61   'Session.Timeout=60\r
62 \r
63   '-------------------------------\r
64   ' set security rights\r
65   '-------------------------------\r
66   dim CanModify as Boolean=CBool(accessRights="rw")\r
67   oLiveGrid.canAdd=CanModify\r
68   oLiveGrid.canEdit=CanModify\r
69   oLiveGrid.canDelete=CanModify\r
70 \r
71   OpenGridForm=true\r
72 end function\r
73 \r
74 \r
75 Public sub CloseApp()\r
76   if IsNothing(dbConnection) then exit sub\r
77   dbConnection.Close()\r
78   dbConnection = Nothing\r
79 end sub\r
80 \r
81 \r
82 Sub Page_Unload(Sender As object, e As EventArgs)\r
83   Me.CloseApp()\r
84 End Sub\r
85 \r
86 </script>\r