Updated LoadRicoClient for asp and php, so all asp and php examples are working again...
[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 <%@ Import Namespace="Rico" %>\r
7 \r
8 <script runat="server">\r
9 \r
10 Public dbConnection as object, accessRights as string\r
11 Public LastErrorMsg as String\r
12 Public defaultDB as String = "Northwind"\r
13 Public dbDialect as dbDialects = dbDialects.Access\r
14 \r
15 \r
16 Public Function OpenDB()\r
17   try\r
18     select case dbDialect\r
19       case dbDialects.Access: dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../data/" & defaultDB & ".mdb") & ";User ID=;Password=;")\r
20       case dbDialects.TSQL:   dbConnection = new SqlConnection("Data Source=MATTSPROBOOK\SQLEXPRESS;User ID=userid;Password=password;Initial Catalog=" & defaultDB & ";")\r
21       case dbDialects.Oracle: dbConnection = new OleDbConnection("Provider=OraOLEDB.Oracle;Data Source=XE;User ID=" & defaultDB & ";Password=Password;")\r
22       case dbDialects.MySQL:  dbConnection = new OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=" & defaultDB & ";USER=userid;PASSWORD=password;")\r
23       case dbDialects.DB2:    dbConnection = new OleDbConnection("Provider=IBMDADB2;Data Source=NORTHWND;Protocol=local;CurrentSchema=SCHEMA;User ID=userid;Password=password;")\r
24     end select\r
25     dbConnection.Open()\r
26     OpenDB=true\r
27   Catch ex As Exception\r
28     OpenDB=false\r
29     LastErrorMsg=ex.Message\r
30   end try\r
31 end function\r
32 \r
33 \r
34 Public function OpenApp()\r
35   OpenApp=false\r
36   if not OpenDB then exit function\r
37   accessRights="rw"  ' CHECK APPLICATION SECURITY HERE  (in this example, "r" gives read-only access and "rw" gives read/write access)\r
38   if IsNothing(accessRights) OrElse left(accessRights,1)<>"r" then\r
39     LastErrorMsg="You do not have permission to access this application"\r
40   else\r
41     OpenApp=true\r
42   end if\r
43 end function\r
44 \r
45 \r
46 Public function OpenGrid(oLiveGrid as object, optional menuevent as menuEvents = menuEvents.click)\r
47   OpenGrid=false\r
48   if not OpenApp() then\r
49     response.write("ERROR: " & LastErrorMsg)\r
50     response.end\r
51     exit function\r
52   end if\r
53   SetGridOptions(oLiveGrid,menuevent)\r
54   OpenGrid=true\r
55 end function\r
56 \r
57 \r
58 Public sub SetGridOptions(oLiveGrid as object, optional menuevent as menuEvents = menuEvents.click)\r
59   oLiveGrid.dbConnection=Me.dbConnection\r
60   oLiveGrid.dbDialect=Me.dbDialect\r
61 \r
62   '-------------------------------\r
63   ' set application-wide defaults\r
64   '-------------------------------\r
65   oLiveGrid.highlightElem="menuRow"\r
66   oLiveGrid.menuEvent=menuevent\r
67   'Session.Timeout=60\r
68 end sub\r
69 \r
70 \r
71 Public function OpenGridForm(oLiveGrid as object)\r
72   OpenGridForm=false\r
73   if not OpenGrid(oLiveGrid) then exit function\r
74 \r
75   '-------------------------------\r
76   ' set security rights\r
77   '-------------------------------\r
78   dim CanModify as Boolean=CBool(accessRights="rw")\r
79   oLiveGrid.canAdd=CanModify\r
80   oLiveGrid.canEdit=CanModify\r
81   oLiveGrid.canDelete=CanModify\r
82 \r
83   OpenGridForm=true\r
84 end function\r
85 \r
86 \r
87 Public sub CloseApp()\r
88   if IsNothing(dbConnection) then exit sub\r
89   dbConnection.Close()\r
90   dbConnection = Nothing\r
91 end sub\r
92 \r
93 \r
94 Sub Page_Unload(Sender As object, e As EventArgs)\r
95   Me.CloseApp()\r
96 End Sub\r
97 \r
98 </script>\r