Abstract Class: can have non-abstract method; can have member variables; all the abstract methods must be overwritten in the extended classes.
Interface: describe some common rules, thus all methods are abstract; all member variables must be final static; In java, interface can be used for multi-inheritance purpose.
Donnerstag, 24. Juli 2008
Montag, 21. Juli 2008
Geodetic coordinates translation - useful links
http://psas.pdx.edu/CoordinateSystem/Latitude_to_LocalTangent.pdf
http://en.wikipedia.org/wiki/Geodetic_system
http://www.cplusplus.com/reference/clibrary/cmath/
http://en.wikipedia.org/wiki/Geodetic_system
http://www.cplusplus.com/reference/clibrary/cmath/
Montag, 14. Juli 2008
IMP and EXP with data pump
$ expdp hr/hr DIRECTORY=exp_dir DUMPFILE=hr_exp.dmp LOGFILE=hr_exp.log
$ CREATE DIRECTORY dir_dump AS 'D:/tmp'
create user hr2
$ GRANT READ, WRITE ON DIRECTORY dir_dump TO hr2
$ impdp hr2/hr2 SCHEMAS=hr2 DIRECTORY=dir_dump LOGFILE=hr2_imp.log DUMPFILE=hr_exp.dmp
Freitag, 27. Juni 2008
"case" in SQL
UPDATE inventory SET price = price *
CASE
WHEN quantity > 20 THEN 0.75
WHEN quantity BETWEEN 10 AND 20 THEN 0.90
ELSE 0.95
END;
SELECT employee_name
CASE admin
WHEN 1 THEN 'yes'
ELSE 'no'
END 'admin'
FROM employees;
Freitag, 20. Juni 2008
VC++ project configuration tips
1. use "local setting" files (*.vsprops) to store the directory configurations. It can be reused for more than one projects.
ProjectType="Visual C++"
Version="8.00"
Name="lokale Einstellungen"
>
Name="OcciDir"
Value="D:\apps\oracle10g\OCI"
PerformEnvironmentSet="true"
/>
Name="BoostDir"
Value="D:\boost\Boost\include\boost_1_35_0"
PerformEnvironmentSet="true"
/>
Name="OcciLib"
Value="lib\MSVC\vc8"
PerformEnvironmentSet="true"
/>
2. The includes files' path should be in "C/C++ => Allgemein => Zusaetzliche Includeverzeichnisse".
3. The libs which are needed should be in "Linker => Allgemein => Zusaetzliche Bibliotheksverzeichnisse". If the libs can not be found, there will be errors like "fatal error LNK1104: Datei libboost_program_options-vc80-mt-1_35.lib kann nicht geoeffnet werden".
Version="8.00"
Name="lokale Einstellungen"
>
Value="D:\apps\oracle10g\OCI"
PerformEnvironmentSet="true"
/>
Value="D:\boost\Boost\include\boost_1_35_0"
PerformEnvironmentSet="true"
/>
Value="lib\MSVC\vc8"
PerformEnvironmentSet="true"
/>
2. The includes files' path should be in "C/C++ => Allgemein => Zusaetzliche Includeverzeichnisse".
3. The libs which are needed should be in "Linker => Allgemein => Zusaetzliche Bibliotheksverzeichnisse". If the libs can not be found, there will be errors like "fatal error LNK1104: Datei libboost_program_options-vc80-mt-1_35.lib kann nicht geoeffnet werden".
Freitag, 13. Juni 2008
Debug database application in visual studio 2005
After upgrading from visual studio 2003 to visual studio 2005, some configurations are needed for debugging database applications.
1. download occi for vc8. Place it at $oracle_home\OCI\lib\MSVC\vc8.
2. add it to Path. Becareful, it must stay before $oracle_home\bin in path.
3. Go to project properties page. Linker -> Eingabe -> Zusaetzliche Abhaengigkeiten, use oraocci10d.lib for debug mode, oraocci10.lib for release mode.
1. download occi for vc8. Place it at $oracle_home\OCI\lib\MSVC\vc8.
2. add it to Path. Becareful, it must stay before $oracle_home\bin in path.
3. Go to project properties page. Linker -> Eingabe -> Zusaetzliche Abhaengigkeiten, use oraocci10d.lib for debug mode, oraocci10.lib for release mode.
Freitag, 6. Juni 2008
Script to create user
# user auf Ziel-Rechner anlegen, zB script in CYGWIN
-- user anlegen
sqlplus 'sys/lbsys as sysdba' <
-- drop user $1 cascade;
-- vielleicht datafile ' ' noetig?
CREATE TABLESPACE $1
LOGGING
DATAFILE 'd:\ORADATA\\DAT_$1_1.dbf' SIZE 500M AUTOEXTEND
ON NEXT 200M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
CREATE USER $1 PROFILE DEFAULT
IDENTIFIED BY $1 DEFAULT TABLESPACE $1
QUOTA UNLIMITED
ON $1
ACCOUNT UNLOCK;
GRANT ALTER SESSION TO $1;
GRANT CREATE PROCEDURE TO $1;
GRANT CREATE SEQUENCE TO $1;
GRANT CREATE TRIGGER TO $1;
GRANT CREATE TYPE TO $1;
GRANT CONNECT TO $1;
GRANT CREATE TABLE TO $1;
GRANT CREATE view TO $1;
GRANT CREATE synonym TO $1;
EOF
-- user anlegen
sqlplus 'sys/lbsys as sysdba' <
-- drop user $1 cascade;
-- vielleicht datafile ' ' noetig?
CREATE TABLESPACE $1
LOGGING
DATAFILE 'd:\ORADATA\\DAT_$1_1.dbf' SIZE 500M AUTOEXTEND
ON NEXT 200M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
CREATE USER $1 PROFILE DEFAULT
IDENTIFIED BY $1 DEFAULT TABLESPACE $1
QUOTA UNLIMITED
ON $1
ACCOUNT UNLOCK;
GRANT ALTER SESSION TO $1;
GRANT CREATE PROCEDURE TO $1;
GRANT CREATE SEQUENCE TO $1;
GRANT CREATE TRIGGER TO $1;
GRANT CREATE TYPE TO $1;
GRANT CONNECT TO $1;
GRANT CREATE TABLE TO $1;
GRANT CREATE view TO $1;
GRANT CREATE synonym TO $1;
EOF
Abonnieren
Posts (Atom)