Oracle

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
Oracle
Saturday, December 1, 2012PrintSubscribe
Minimal Membership Provider for Oracle

Requirements

A minimal membership provider requires a dedicated table to keep track of user names and passwords.

'Users' table diagram.

This is a sample “Users” table with “identity” primary key. It is necessary to create a sequence and trigger to update the identity key every time a new user is created.

SQL:

create sequence users_seq;

create table 
users
(
    user_id 
int not null primary key,
    user_name varchar2(128) not null,
    password varchar2(128) not null
);

create or replace trigger 
users_trigger
    before 
insert
    on 
users
   
for each 
row
declare

    u_id users.user_id%type;
begin
    select users_id_seq.nextval into u_id from dual;
    :new.user_id := u_id;
end users_trigger;
/

Here is how the table may look if a “unique identifier” primary key is implemented. Oracle will automatically assign a unique identifier when a new user is created.

SQL:

create table users
(
    user_id 
raw(16) default sys_guid() not null primary key,
    user_name varchar2(128) not null,
    password varchar2(128) not null
);

User roles are hardcoded in the minimal Role Provider implementation.

Configuration

Create a table in your database using one of the scripts specified above.

Select the project name on the start page of the application generator and choose Settings.

Proceed to Authentication and Membership.

Select “Enable custom membership and role providers” option and enter the following configuration settings.

table Users=Users
column [int|uiid] UserID = user_id
column [text] UserName = user_name
column [text] Password = password

role Administrators = admin
role Users = admin, user
role Everybody = *

The configuration maps logical table Users required for membership provider implementation to the physical database table Users. It also defines three user roles – Administrators, Users, and Everybody.

Generate the project to see the membership provider in action.

Monday, November 26, 2012PrintSubscribe
SQL Business Rules for Oracle Databases

SQL business rules are implemented in the programing language supported by application database engine.

If an Oracle database is the foundation of your data tier, then the programming language of SQL business rules is PL/SQL.

Consider Employees page displaying createForm1 in a project created straight from HR sample database.

Page 'Employees' displaying 'createForm1' view in a project created from the sample HR database available with Oracle database engines

None of the fields has a default value. Let’s assign default values to First Name, Last Name, Hire Date, and Salary.

Start Project Designer, activate Controllers tab, locate EMPLOYEES data controller and start creating a new SQL business rule.

Creating a new SQL business rule in Code On Time application generator

Configure the rule as follows:

Property Value
Command Name New
Type SQL
Phase Execute
Script

begin
    :FIRST_NAME := 'John';
    :LAST_NAME := 'Doe';
    :HIRE_DATE := sysdate;
    select avg(SALARY) into :SALARY from EMPLOYEES;
end;

Save the rule.

The script is written in PL/SQL. The highlighted field names are referenced as parameters in the script text.

image

When executed, the script will assign static values to First Name and Last Name fields.

The current system date will be assigned to Hire Date field.

An average of all employee salaries will be assigned to Salary field.

SQL business rule writtent in PL/SQL assigns default values to the field when a user starts creating a new record

The full power of PL/SQL is available to application developers when creating applications with Code On Time.

Tuesday, October 11, 2011PrintSubscribe
DotNetNuke Factory, Oracle Data Provider, Wizards

Code On Time has released a new update 5.0.0.72 with major features and enhancements.

Please see update notes below:

  • New code generation project DotNetNuke Factory creates application pages as controls with data views incorporated in a DotNetNuke module. Registered module can be configured by end users. You can integrate a line-of-business database application with a popular open source web content management system in minutes.
     
  • Added support for native Oracle.DataAccess client with full support for sequences on primary key fields. Primary key fields of integer type are expected to have sequences named after the name of the tables. For example , “CUSTOMER_SEQ” sequence is expected to match “CUSTOMER” table.
     
  • Projects generated from Oracle databases now recognize database views.
      Introduced "client-only" virtual Status field to support wizards. Support for new Status and None actions to allow easy implementation of Wizards. The tutorial will be available shortly.
     
  • Ajax Control Toolkit 50731 is now shipping with the code generation library.
        
  • RichEditor has been changed to support new HtmlEditorBehavior from Ajax Control Toolkit. Read more about the new rich text editor at http://stephenwalther.com/blog/archive/2011/08/01/ajax-control-toolkit-july-2011-release-and-the-new-html.aspx.
      
  • Action buttons displayed in forms are now automatically refreshed when data is changed.
    WhenClientScript property of actions can now reference values of fields by enclosing the field name in square brackets. For example [Status]. The same capability already exists in visibility expressions for categories and fields.
     
  • Numerous improvements to the message bar (yellow message at the top of the screen). It now takes up to 15% of the window height and starts scrolling when needed.
     
  • Sidebar boxes are fixed at the top of the screen if there in no horizontal scrolling.
     
  • Automatic resizing in multi-column forms is not performed anymore.
     
  • Adding a data field to a category will remove any bindings of the field that may exist in other categories of a view.
      
  • Designer automatically transfers properties of existing data fields when a field is defined in a new category or view.
     
  • Field validators are now using IDs to identify expressions in Project Designer.
     
  • Data Field visibility rules are now using IDs to identify visibility expressions in Project Designer.
      
  • Category visibility rules are now using IDs instead of header text as primary key. Category description is not mandatory in  the new release. Any characters can be used in the category header text.
     
  • Bread crumbs of many project items in Designer now include extended information.
     
  • Filters and sort order are restored in the grid/data sheet view if you select a record and then return back.
     
  • Filtering is automatically disabled on timestamp fields to prevent errors when users do Quick Find or try to apply a filter.
     
  • Presence of "onDemand" attribute was causing incorrect production of automatic reports. The issue has been resolved.
      
  • Fields with explicitly defined value/text items will correctly render on the search bar. Text of items is displayed instead of actual values.
     
  • If a field has explicitly defined value/text item pairs then the multiple-value filter will correctly display the values. The field will also correctly align as text (to the left) and will print in filter details.
      
  • Reports will print correctly item text when item value/text pairs are explicitly defined on a field level (0-Open, 1-Closed, 2-Pending). This applies only to .NET 4.0 projects.
     
  • Regex validators are invoked when a field value has changed.
     
  • Data access objects based on tables that have a primary key field name matching the table name will not result in compilation error.
     
  • New implementation of DataController.UserIsInRole takes an array of roles. Each value can be specified as a comma-separated list of roles or simple role name.
      
  • Fixed designer error "Can't execute code from a freed script".
     
  • Trimming of long words used in summary boxes has been improved to correctly process HTML tags, which was previously causing incorrect display of history.
     
  • Designer displays Up/Down options on field Items page.
     
  • Values of fields with "Format On Client" set to "False" will print correctly in reports.
     
  • Long standing problem with UTF-8 encoding not being applied generated filed has been resolved.
      
  • "_Mirror" fields supporting server side formatting have been improved to allow editing of field values.
     
  • Hidden primary keys are rendered as "hidden" inputs in insert mode.
     
  • Multiple value selection is passed correctly when action is executed from a modal form.
    Hidden, static, and read-only fields are now passed as "read-only" to updates performed in response to Batch Edit commands. This ensures that there will no exception "Object not found" with "audit" fields processing (ModifiedOn, ModifiedBy).
     
  • Generated *.designer.vb files are now using WithEvents in declarations of control fields.
     
  • .NET 3.5 web apps will display rounded corners in modal views.
     
  • Implemented Web.DataView.goBack() method in the client library to suppress cancelled requests to retrieve the child data sets when data controller URL parameters are used on complex master/detail pages.
     
  • Aliased fields are correctly displayed on automatic search bar if the field's Search Mode property is set to Required or Suggested.
       
  • Exception "Key not present in dictionary" now displays the name of the field that is no longer available in the data controller but referenced in its definition.
        
  • Code generator project file now supports “zip” mode when executing “copy” instruction.
     
  • Universal ProviderFactories variable lists all DB and Membership providers registered in machine.config of standard and 64-bit Microsoft.NET. ProviderFactories variable is now used to configure references to required external assemblies in web.config.
     
  • Button “Next” on the data controller summary now reads “Generate”.
Continue to Using Oracle Sequence