8caa58a7fe6d11c5d0ed3692069c16d8913a1198
[infodrom/rico3] / examples / dotnet / dbConnect.ascx
1 <%@ Control Language="vb" %>\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 OpenGrid(oLiveGrid as object, optional menuevent as string = "click")\r
46   OpenGrid=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   SetGridOptions(oLiveGrid,menuevent)\r
53   OpenGrid=true\r
54 end function\r
55 \r
56 \r
57 Public sub SetGridOptions(oLiveGrid as object, optional menuevent as string = "click")\r
58   oLiveGrid.dbConnection=Me.dbConnection\r
59   oLiveGrid.dbDialect=Me.dbDialect\r
60 \r
61   '-------------------------------\r
62   ' set application-wide defaults\r
63   '-------------------------------\r
64   oLiveGrid.highlightElem="menuRow"\r
65   oLiveGrid.menuEvent=menuevent\r
66   'Session.Timeout=60\r
67 end sub\r
68 \r
69 \r
70 Public function OpenGridForm(oLiveGrid as object)\r
71   OpenGridForm=false\r
72   if not OpenGrid(oLiveGrid) then exit function\r
73 \r
74   '-------------------------------\r
75   ' set security rights\r
76   '-------------------------------\r
77   dim CanModify as Boolean=CBool(accessRights="rw")\r
78   oLiveGrid.canAdd=CanModify\r
79   oLiveGrid.canEdit=CanModify\r
80   oLiveGrid.canDelete=CanModify\r
81 \r
82   OpenGridForm=true\r
83 end function\r
84 \r
85 \r
86 Public sub CloseApp()\r
87   if IsNothing(dbConnection) then exit sub\r
88   dbConnection.Close()\r
89   dbConnection = Nothing\r
90 end sub\r
91 \r
92 \r
93 Sub Page_Unload(Sender As object, e As EventArgs)\r
94   Me.CloseApp()\r
95 End Sub\r
96 \r
97 </script>\r