Thursday, August 19, 2010

Open a web URL in Visual Basic 6.0

"ShellExecute" : Without adding Active X/COM components to the project, the simplest way to achieve this by using Windows API call.


Add the following API declaration at the form level declaration section

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Parameters :

hwnd [in, optional]

A handle to the owner window used for displaying a UI or error messages. This value can be NULL if the operation is not associated with a window.

lpOperation [in, optional]

A pointer to a null-terminated string, referred to in this case as a verb, that specifies the action to be performed:

"edit"         àLaunches an editor and opens the document for editing. If lpFile is not a document

file, the function will fail.

"explore"     à
Explores a folder specified by lpFile.

"find"         à
Initiates a search beginning in the directory specified by lpDirectory.

"open"     à
Opens the item specified by the lpFile parameter. The item can be a file or folder.

"print"         àPrints the file specified by lpFile. If lpFile is not a document file, the function fails.

"NULL"        à
Default

lpFile [in]

A pointer to a null-terminated string that specifies the file or object on which to execute the specified verb. To specify a Shell namespace object, pass the fully qualified parse name. Note that not all verbs are supported on all objects. For example, not all document types support the "print" verb. If a relative path is used for the lpDirectory parameter do not use a relative path for lpFile.

lpParameters [in, optional]

If lpFile specifies an executable file, this parameter is a pointer to a null-terminated string that specifies the parameters to be passed to the application. The format of this string is determined by the verb that is to be invoked. If lpFile specifies a document file, lpParameters should be NULL.

lpDirectory [in, optional]

A pointer to a null-terminated string that specifies the default (working) directory for the action. If this value is NULL, the current working directory is used. If a relative path is provided at lpFile, do not use a relative path for lpDirectory.

nShowCmd [in]

SW_SHOWNORMAL : Windows restores it to its original size and position.

SW_MAXIMIZE : Maximizes the specified window.

SW_MINIMIZE :Minimizes the specified window and activates the next top-level window in the z-order.

SW_SHOWMAXIMIZED : Activates the window and displays it as a maximized window.

SW_SHOWMINIMIZED : Activates the window and displays it as a minimized window.


 

For more information: Click HERE


 

Calling API function in Button_Click() event:

Private
Sub Command1_Click()


ShellExecute Me.hwnd, "open", "http://www.yahoo.com", vbNullString, "C:\", SW_SHOWNORMAL

End Sub


 

'Opens the specified URL in the Default WebBrowser.

ShellExecute 0, "open", "http://www.yahoo.com", vbNullString, vbNullString, SW_SHOWNORMAL


 

'Opens the specified URL in the specified WebBrowser.


ShellExecute 0, "open", "C:\Program Files\Mozilla Firefox\Firefox.exe", ", "http://www.yahoo.com", vbNullString, 1


 

Tuesday, August 10, 2010

Oracle: File Handler JAVA library

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "FileHandler"

AS import java.lang.*;

import java.util.*;

import java.io.*;

import java.sql.Timestamp;


 

public class FileHandler

{


private static int SUCCESS = 1;


private static int FAILURE = 0;


 

public static void getList(String pdirectory,String pcategory)


throws SQLException


{


File path = new File( pdirectory );


String[] list = path.list();


String element;


 


for(int i = 0; i < list.length; i++)

{


element = list[i];


#sql { INSERT INTO tb_load_files (filename,processed,category)


VALUES (:element,'N', :pcategory) };

}

}


 


public static int canRead (String path) {


File myFile = new File (path);


if (myFile.canRead()) return SUCCESS; else return FAILURE;

}


 


public static int canWrite (String path) {


File myFile = new File (path);


if (myFile.canWrite()) return SUCCESS; else return FAILURE;

}


 


public static int createNewFile (String path) throws IOException {


File myFile = new File (path);


if (myFile.createNewFile()) return SUCCESS; else return FAILURE;

}


 


public static int delete (String path) {


File myFile = new File (path);


if (myFile.delete()) return SUCCESS; else return FAILURE;

}


 


public static int exists (String path) {


File myFile = new File (path);


if (myFile.exists()) return SUCCESS; else return FAILURE;

}


 


public static int isDirectory (String path) {


File myFile = new File (path);


if (myFile.isDirectory()) return SUCCESS; else return FAILURE;

}


 


public static int isFile (String path) {


File myFile = new File (path);


if (myFile.isFile()) return SUCCESS; else return FAILURE;

}


 


public static int isHidden (String path) {


File myFile = new File (path);


if (myFile.isHidden()) return SUCCESS; else return FAILURE;

}


 


public static Timestamp lastModified (String path) {


File myFile = new File (path);


return new Timestamp(myFile.lastModified());

}


 


public static long length (String path) {


File myFile = new File (path);


return myFile.length();

}


 


public static String list (String path) {


String list = "";


File myFile = new File (path);


String[] arrayList = myFile.list();


 


Arrays.sort(arrayList, String.CASE_INSENSITIVE_ORDER);


 


for (int i=0; i < arrayList.length; i++) {

// Prevent directory listing expanding if we will blow VARCHAR2 limit.


if ((list.length() + arrayList[i].length() + 1) > 32767)


break;


 


if (!list.equals(""))


list += "," + arrayList[i];


else

list += arrayList[i];

}


return list;

}


 


public static int mkdir (String path) {


File myFile = new File (path);


if (myFile.mkdir()) return SUCCESS; else return FAILURE;

}


 


public static int mkdirs (String path) {


File myFile = new File (path);


if (myFile.mkdirs()) return SUCCESS; else return FAILURE;

}


 


public static int renameTo (String fromPath, String toPath) {


File myFromFile = new File (fromPath);


File myToFile = new File (toPath);


if (myFromFile.renameTo(myToFile)) return SUCCESS; else return FAILURE;

}


 


public static int setReadOnly (String path) {


File myFile = new File (path);


if (myFile.setReadOnly()) return SUCCESS; else return FAILURE;

}


 


public static int copy (String fromPath, String toPath) {


try {


File myFromFile = new File (fromPath);


File myToFile = new File (toPath);


 


InputStream in = new FileInputStream(myFromFile);


OutputStream out = new FileOutputStream(myToFile);


 


byte[] buf = new byte[1024];


int len;


while ((len = in.read(buf)) > 0) {


out.write(buf, 0, len);

}


in.close();


out.close();


return SUCCESS;

}


catch (Exception ex) {


return FAILURE;

}

}

};

/


 

------------

/* Usage of File Handler Class library */

PROCEDURE USP_GET_DIR_LIST( p_directory in VARCHAR2,p_category IN VARCHAR2)


as language java

name 'FileHandler.getList( java.lang.String, java.lang.String )';


 

Oracle: Handling XML queries with examples

/* XML Handling with Oracle Queries.

Author : SRINIVAS SREERAMOJU

Oracle : Version 10g/11g

This posting will really help you to understand the usage of most of the XML functions.

*/


 

Download Oracle 10g XML Developer Guide: HERE


 

--Create EMP Table

CREATE TABLE EMP

( EMPNO number NOT NULL,


ENAME VARCHAR2(10),


JOB VARCHAR2(9),


MGR number(4),


HIREDATE DATE,


SAL number,


COMM NUMBER(7,2) ,


DEPTNO number(2)

)

/


 

INSERT INTO EMP VALUES

(7369, 'SMITH', 'CLERK', 7902, '17-DEC-1980', 800, NULL, 20)

/

INSERT INTO EMP VALUES

(7499, 'ALLEN', 'SALESMAN', 7698, '20-FEB-1981', 1600, 300, 30)

/

INSERT INTO EMP VALUES

(7521, 'WARD', 'SALESMAN', 7698, '22-FEB-1981', 1250, 500, 30)

/

INSERT INTO EMP VALUES

(7566, 'JONES', 'MANAGER', 7839, '2-APR-1981', 2975, NULL, 20)

/

INSERT INTO EMP VALUES

(7654, 'MARTIN', 'SALESMAN', 7698, '28-SEP-1981', 1250, 1400, 30)

/

INSERT INTO EMP VALUES

(7698, 'BLAKE', 'MANAGER', 7839, '1-MAY-1981', 2850, NULL, 30)

/

INSERT INTO EMP VALUES

(7782, 'CLARK', 'MANAGER', 7839, '9-JUN-1981', 2450, NULL, 10)

/

INSERT INTO EMP VALUES

(7788, 'SCOTT', 'ANALYST', 7566, '09-DEC-1982', 3000, NULL, 20)

/

INSERT INTO EMP VALUES

(7839, 'KING', 'PRESIDENT', NULL, '17-NOV-1981', 5000, NULL, 10)

/

INSERT INTO EMP VALUES

(7844, 'TURNER', 'SALESMAN', 7698, '8-SEP-1981', 1500, 0, 30)

/

INSERT INTO EMP VALUES

(7876, 'ADAMS', 'CLERK', 7788, '12-JAN-1983', 1100, NULL, 20)

/

INSERT INTO EMP VALUES

(7900, 'JAMES', 'CLERK', 7698, '3-DEC-1981', 950, NULL, 30)

/

INSERT INTO EMP VALUES

(7902, 'FORD', 'ANALYST', 7566, '3-DEC-1981', 3000, NULL, 20)

/

INSERT INTO EMP VALUES

(7934, 'MILLER', 'CLERK', 7782, '23-JAN-1982', 1300, NULL, 10)

/

COMMIT

/

SELECT * FROM EMP

/

----- Following are the various kinds of XML handling examples-----------

--Create a simple XML document.

SELECT XMLELEMENT ("AboutMe",


XMLELEMENT ("Address",


XMLCDATA ('SRINIVA SREERAMOJU'),


XMLELEMENT ("State", 'New Jersey'),


XMLELEMENT ("Country", 'USA') ,


XMLAGG (XMLELEMENT ("Email",


XMLELEMENT ("Personal1",'srini.sreeramoju@gmail.com'),


XMLELEMENT ("Personal2",'srini.sreeramoju@gmail.com'))

)

),


XMLELEMENT ("Work" ,


XMLForest('Senior Programmer Analyst' AS Designation, 'Suffern' AS Location, 'New York' AS State)

),


XMLELEMENT ("MyBLOG", 'http://srinisreeramoju.blogspot.com')


 

) AS RESULT


FROM DUAL

/

--Create a simple XML document from EMP table

SELECT XMLTYPE


(XMLELEMENT ("EMP",


XMLELEMENT ("REC",


XMLELEMENT ("EMPNO", empno),


XMLELEMENT ("ENAME", ename),


XMLELEMENT ("JOB", job)

)

).getclobval ()

) AS "RESULT"


FROM emp

/

/*

XMLAgg is an aggregate function that produces forest of XML elements from a collection of XML elements

*/

SELECT XMLTYPE


(XMLELEMENT ("EMP",


XMLAGG (XMLELEMENT ("REC",


XMLELEMENT ("EMPNO", empno),


XMLELEMENT ("ENAME", ename),


XMLELEMENT ("JOB", job)

)

)

).getclobval ()

) AS "RESULT"


FROM emp


/


--Department wise grouping of employees


SELECT e.deptno, XMLTYPE


(XMLELEMENT ("DEPT", XMLAttributes(DEPTNO AS "DEPTNO"),


XMLAGG (XMLELEMENT ("EMPLOYEE",


XMLELEMENT ("EMPNO", empno),


XMLELEMENT ("ENAME", ename),


XMLELEMENT ("JOB", job)

)

)

).getclobval ()

) AS "RESULT"


FROM emp e


GROUP BY e.deptno


/


--Manager Wise grouping of employees


SELECT e.mgr,


XMLELEMENT ("Manager", XMLAttributes(e.MGR AS "MGR"),


XMLAGG (XMLELEMENT ("EMPLOYEE",


XMLELEMENT ("EMPNO", e.empno),


XMLELEMENT ("ENAME", e.ename),


XMLELEMENT ("JOB", e.job)

)

)


 

) AS "RESULT"


FROM emp e


GROUP BY e.MGR

/

--Department wise grouping of employees

SELECT XMLTYPE


(XMLELEMENT("DepartmentList",


XMLAGG


(XMLELEMENT


("Department",xmlattributes (d.deptno AS "DEPTNO"),

(SELECT XMLELEMENT


("Employees",


XMLAGG


(XMLELEMENT


("Employee",


xmlattributes (e.empno AS "ID"),


XMLFOREST (e.ename AS "Name",e.sal AS "Salary",e.job AS "Job")

)

)

)


FROM emp e


WHERE e.deptno = d.deptno)

)

)

).getclobval ()

) AS "RESULT"


FROM (SELECT DISTINCT deptno FROM emp) d

ORDER BY d.deptno

/


 

SELECT XMLTYPE


(XMLELEMENT("DepartmentList",


XMLAGG


(XMLELEMENT


("Department",xmlattributes (d.deptno AS "DEPTNO"),

(SELECT XMLELEMENT


("Employees",


XMLAGG


(XMLELEMENT


("Employee",


xmlattributes (e.empno AS "ID"),


XMLFOREST (e.ename AS "Name",e.sal AS "Salary",e.job AS "Job")

)

)

)


FROM emp e


WHERE e.deptno = d.deptno)

)

)

).getclobval ()

) AS "RESULT"


FROM (SELECT DISTINCT deptno FROM emp) d

ORDER BY d.deptno


 

/

SELECT XMLElement("EMP",


XMLAttributes(EMPNO),


XMLFOREST (ENAME,JOB ,MGR,HIREDATE ,SAL ,COMM ,DEPTNO)).getclobval () AS Result


FROM emp

/

SELECT XMLELEMENT ("EMP",


XMLAttributes(EMPNO),


XMLFOREST (EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)) AS Result


FROM emp

/

SELECT VALUE (e).getclobval () RESULT


FROM TABLE (XMLSEQUENCE (CURSOR (SELECT * FROM emp))) e

/

--Generate a XML Document from your Query

SELECT DBMS_XMLGEN.getXML('SELECT * FROM EMP') AS xml_doc FROM dual; -- Returns CLOB

/

--Generates XML Document from your Query

SELECT DBMS_XMLGEN.getXMLTYPE('SELECT * FROM EMP') AS xml_doc FROM dual; -- Returns XMLType

/

--Convert the specified column to XML string

SELECT SYS_XMLGEN (e.empno) AS xml_emno ,


SYS_XMLGEN (e.ename) AS xml_ename ,


SYS_XMLGEN (e.sal) AS xml_sal

FROM emp e

/


 

/* Following examples illustrates parsing of a XML document and presenting the data in a regular table format.

*/

--Returns only ENAME column

SELECT e.xml_doc.getrootelement (),


e.xml_doc.EXTRACT ('//ENAME') xml_ename


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e

/

--Appends ENAME column data

SELECT e.xml_doc.EXTRACT('//ENAME/text()').getstringval() as empno


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e

/

--

--Returns only ENAME column

SELECT e.xml_doc.EXTRACT ('//ENAME') xml_ename


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e


 

/

--Extract all ENAME column values of the XML document

SELECT TRIM (EXTRACT (xmlTable.COLUMN_VALUE, '//ENAME/text()').getstringval ()) myName


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e ,


TABLE (XMLSEQUENCE (EXTRACT (e.xml_doc, '//ROW/ENAME'))) xmlTable

/


 

SELECT TRIM (EXTRACT (xmlTable.COLUMN_VALUE, '//EMPNO/text()').getstringval ()) empno ,


TRIM (EXTRACT (xmlTable.COLUMN_VALUE, '//ENAME/text()').getstringval ()) ename


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e ,


TABLE (XMLSEQUENCE (EXTRACT (e.xml_doc, '//ROW'))) xmlTable


WHERE TRIM (EXTRACT (xmlTable.COLUMN_VALUE, '//EMPNO/text()').getstringval ()) = '7369'


/


 

--Extract the ENAME

SELECT TRIM (extractValue (VALUE(xmlTable), '//ENAME')) ename


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e ,


TABLE (XMLSEQUENCE (EXTRACT (e.xml_doc, '//ROW'))) xmlTable


WHERE TRIM (EXTRACT (xmlTable.COLUMN_VALUE, '//EMPNO/text()').getstringval ()) = '7369'

/

--Getting he Number of Elements in each department

SELECT TRIM (extractValue (VALUE(xmlTable), '//DEPTNO')) dept , COUNT(*)


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e ,


TABLE (XMLSEQUENCE (EXTRACT (e.xml_doc, '//ROW'))) xmlTable


GROUP BY TRIM (extractValue (VALUE(xmlTable), '//DEPTNO'))

/

--This example shows how to create a simple relational view that exposes XML document contents:

CREATE OR REPLACE VIEW


VW_EMP( EMPNO ,ENAME ,JOB ,MGR ,HIREDATE ,SAL ,COMM ,DEPTNO )

AS

SELECT TRIM (extractValue (VALUE(xmlTable), '//EMPNO')) AS EMPNO,


TRIM (extractValue (VALUE(xmlTable), '//ENAME')) AS ENAME,


TRIM (extractValue (VALUE(xmlTable), '//JOB')) AS JOB ,


TRIM (extractValue (VALUE(xmlTable), '//MGR')) AS MGR ,


TRIM (extractValue (VALUE(xmlTable), '//HIREDATE')) AS HIREDATE ,


TRIM (extractValue (VALUE(xmlTable), '//SAL')) AS SAL ,


TRIM (extractValue (VALUE(xmlTable), '//COMM')) AS COMM,


TRIM (extractValue (VALUE(xmlTable), '//DEPTNO')) AS DEPT


FROM (SELECT DBMS_XMLGEN.getxmltype ('SELECT * FROM EMP') AS xml_doc


FROM DUAL


) e ,


TABLE (XMLSEQUENCE (EXTRACT (e.xml_doc, '//ROW'))) xmlTable

/