OO4O and PerlScript
I am currently using VBScript and OO4O to access and manage an Oracle 8.0 database and was wondering if Perlscript will work with OO4O?
Thanks
Not as I understand it. The docs are brief (to say the least):
Oracle database transactions initiated in Oracle Objects for OLE (OO4O) automatically participate in global transactions coordinated by the MS Distributed Transaction Coordinator (DTC) in the Microsoft Transaction Server (MTS), if all the following conditions are true:
� The OpenDatabase method of OraSession uses the ORADB_ENLIST_IN_MTS option.
� OO4O determines that it is running in the context of a global transaction in MTS.
� Oracle Service for MTS is installed and running.
So nowhere do I see anything about it using the connection pool from MTS.
Similar Messages
-
Oracle 8i Lite - OO4O and other Questions
1.) Can OO4O (Oracle Objects for OLE) be used with the Oracle 8i Lite database ?
2.) Does Oracle 8i Lite operate as a "client/server" database ?
3.) Is it possible to have multi-user access to Oracle 8i Lite ?
4.) Is there documentation somewhere that lists all of the limitations with 8i Lite as compared to 8i ?
We are in the planning stages of a partial mobile system, and want to know how much difference in development efforts for the 2 platforms (Oracle 8i on Win 2000 server and Oracle 8i Lite on NT/98/95 Laptops).
Any information on Oracle 8i Lite would be appreciated. -- Especially need an answer to question 1 right now.
Thanks,
PaulaHi,
I am qouting below from the oracle 8i Lite documentation which says it supports triggers . Please clarify.
Oracle Lite DBMS
Oracle Lite DBMS is a lightweight (50KB - 750KB), Java enabled database designed from the ground up for laptops, handheld computers, PDAs and smartphones. It supports industry standard ODBC, JDBC, SQLJ, and Java Stored Procedures and Triggers. It provides a streaming fast "C" interface, OKAPI, to its object kernel. It also supports Java Access Classes, JAC, a fast and easy way to make Java Objects persistent. Oracle Lite DBMS now supports all popular mobile platforms, including Palm OS, EPOC, and Windows CE, letting you deploy enterprise applications on virtually any mobile device.
Regards
null -
What's wrong with OO4O and delphi
I am trying usint OO4O to fetch the spatial data in delphi,but I can not use the opendatabase function.
here is the code
var
OO4OSession:variant;
OraDatabase:variant;
begin
OO4OSession:= CreateOLEObject('oracleInProcServer.XOraSession');
OraDatabase:=OO4OSession.OpenDatabase('ExampleDb','scott/tiger', 0);
end;
the code is from the help.the error says that the opendatabase member function is not find.
and when I trying to import type library of Oracle InProc Server 4.0 Type Library,when compile the unit,the error messages are like below
[Error] OracleInProcServer_TLB.pas(2548): Undeclared identifier: 'CreateDatabase'
[Error] OracleInProcServer_TLB.pas(2553): Undeclared identifier: 'OpenDatabase'
[Error] OracleInProcServer_TLB.pas(2573): Undeclared identifier: 'Open'
[Error] OracleInProcServer_TLB.pas(2578): Undeclared identifier: 'Close'
[Error] OracleInProcServer_TLB.pas(2706): Undeclared identifier: 'Name'
[Error] OracleInProcServer_TLB.pas(2712): Undeclared identifier: 'OpenDatabase'
[Error] OracleInProcServer_TLB.pas(2717): Undeclared identifier: 'Client'
[Fatal Error] dclusr50.dpk(41): Could not compile used unit '..\Imports\OracleInProcServer_TLB.pas'
Realy strange,can some one help me on this ,Thank u very much.I would recommend you don't use oo4o from Delphi.
Check out ODAC at www.crlab.com. This is a VCL library based on the OCI directly so you will not have the backwards compatibility woes that come with oo4o.
A library is also available from the same company that doesn't need the Oracle Client installed.
Hope this helps.
Adrian -
How to get point ordinates in oracle spatial with oo4o and VC++
Hi,
I need some help baddly.Would someone help me?
Now I need to get the point ordinates in a table called cities.I use oo4o C++ class library and VC++ 6.0 . In the table, the column name of SDO_GEOMETRY object
type is "goem". For the reason that the table is created for a point layer, all the point ordinates are stored in the SDO_POINT.
I read the ordinates in my program as below. But every time the final result of x,y,z are all be 0.000000000 . Although I checked it many times, I still couldn't found why.
So could some experts tell me the reason or show me how to do that?
Thanks in advanced.
ODatabase odb("", "scott", "tiger");
ODynaset odyn(odb, "SELECT * FROM CITIES");
if (odyn.IsOpen())
odyn.MoveFirst();
OObject geometry;
oresult ores = odyn.GetFieldValue("geom", &geometry);
if(ores==OCSUCCESS)
OObject sdopoint;
const char* attrname3=geometry.GetAttrName(3);
geometry.GetAttrValue(attrname3, &sdopoint);
const char* ittypename=sdopoint.GetTypeName();
int itnumber=sdopoint.GetCount();
int attrtype=sdopoint.GetAttrType(1);
const char* attrnameX=sdopoint.GetAttrName(1);
const char* attrnameY=sdopoint.GetAttrName(2);
const char* attrnameZ=sdopoint.GetAttrName(3);
double *x;
double *y;
double *z;
sdopoint.GetAttrValue(attrnameX,x);
sdopoint.GetAttrValue(attrnameY,y);
sdopoint.GetAttrValue(attrnameZ,z);
}Yes. I have tried your code and got the same result.
And I also tried to use SQL to get the result.But it
also failed.
I am intrested in this problem too.
Could some oo4o experts help me too?
jeff -
Bad perfomance with oo4o and vb 6.0
i have start the same select question in odbc (with acccess) and vb with oo4o in odbc it took 2sec in vb 2 min!
for example: this one (in vb) is fast
select * from persons where tin=:tin
but this one very slooow
SELECT t.item_no_val FROM PERSONS PER_PAID,SUBM_TAX_FORMS SBF,TAX_ITEM_VALUES T WHERE PER_PAID.LPRN=SBF.LPRN_PAID AND sbf.drn = t.sbf_drn AND SBF.TF_FORM_CODE = 'PIT-37'AND sbf.dec_status = 'Z' AND sbf.tax_year = 2002 AND t.tfi_item_no = '101' AND sbf.complete_ind in ('W','S') AND T.SBF_DRN = SBF.DRn and per_paid.tin=:tin
but in access (odbc) i have answer fastTry changing the optimiser goal for the session with
db.ExecuteSQL "ALTER SESSION SET OPTIMIZER_GOAL = FIRST_ROWS"
Try FIRST_ROWS and the other option(s). -
RAW problem with OO4O and VB6.
Hello!
Env: W2K3 SBS R2, O11gR2, OO4O, VB6 and problem from a "heritage" project ;-).
/* Create a small Test table */
Create Table ORAWTEST
( oid Number(10),
bflags Raw(4)
) Tablespace USERDATA Storage(Initial 32K Next 32K);
' ** A small VB6 app. **
Dim osess As OraSessionClass, odb As OraDatabase, ors As OraDynaset
Private Sub Form_Load()
Set osess = CreateObject("OracleInProcServer.XOraSession")
Set odb = osess.OpenDatabase("orcl", "uid/pw", ORADB_ORAMODE)
End Sub
Private Sub Form_Unload()
odb.Close: Set osess = Nothing
End Sub
Private Sub Command1_Click()
' Insert 3 rows with different values Into Test table using Addnew() method.
Dim ws As String
Set ors = odb.CreateDynaset("Select * From ORAWTEST", ORADYN_ORAMODE)
ws = Chr$(0) & Chr$(0) & Chr$(32) & Chr$(0)
ors.AddNew: ors("oid") = 1: ors("bflags") = ws: ors.Update
ws = Chr$(0) & Chr$(0) & Chr$(0) & Chr$(32) ' <-- !!! This is the problem.
ors.AddNew: ors("oid") = 2: ors("bflags") = ws: ors.Update
ws = Chr$(0) & Chr$(0) & Chr$(0) & Chr$(64)
ors.AddNew: ors("oid") = 3: ors("bflags") = ws: ors.Update
ors.Close
End Sub
... and now the surprise:
SQL> Select oid, RawToHex(bflags) From ORAWTEST;
OID RAWTOHEX(BFLAGS)
1 00002000
*2 000000*
3 00000040
Row 2 bflags column last byte is missing (in case of x'20' value).
Is it a bug, or whatever? Thanks for any idea in advance.
LeslieOK ... I solved the first question. I'll post the answer as nobody on any of the forums where I've posted this question for the last year or so has known the answer - either that or they weren't willing to share it.
In the form, CR puts the following boilerplate:
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
End Sub
I found that if I added Report.DiscardSavedData before the report source is declared, the report is forced to refresh it's data each time it's run. So that solves the first part of my problem.
Question 2 is still unknown ...
Ken -
Am using AQ (8.1.6). Looking for information on how to implement the callback functionality in VB 6.0...Documentation says that this possible but have found few examples...Have everything else working fine..
Ron MusicYou have to implement a COM interface in your application (or your own OLE object) that exposes the NotifyMe interface as described in the docs. You then use the MonitorStart method to have the object called asynchronously. If memory serves, the interface was:
void NotifyMe(LPDISPATCH)
and the LPDISPATCH pointer was a reference to an OraAQMsg object which contained the message payload.
Suppose you created your own COM object that exposed this interface and called it MyNotify. You then do something like this:
Dim MyQ as OraAQ
Dim Notifier as MyNotify
Dim DB as OraDatabase
Dim OraS as Object
. 'Connect to the RDBMS and init the session (code ommitted for brevity)
Set MyQ = DB.CreateAQ("TEST")
Set Notifier = new MyNotify
MyQ.MonitorStart(Notifer)
Then your object will have the NotifyMe method invoked as messages are dequeued. -
Has anyone tried calling any of the stored procedures that use an oracle defined type as a parameter?
e.g. OraDatabase.ExecuteSQL ("Begin OE_HEADER_UTIL.GET_ORDER_NUMBER(:P_X_HEADER_REC, :P_OLD_HEADER_REC); end;")
where P_X_HEADER_REC and P_OLD_HEADER_REC are of type OE_ORDER_PUB.HEADER_REC_TYPE
I'm trying to do a lookup from an ASP page.Can you please provide details of what you want to correct in the Order?
You can definitely update existing order using Order Import.
Thanks
Shailendra -
Hello together,
I post this Question here in
Re: SQL-Statement with OO4O
and i should paste my question again in an another database forum.
now here again:
I have here following Problem:
Everthime I make a connection to my database with this code
Set oSess = Server.CreateObject("OracleInProcServer.XOraSession")
Set oDB = oSess.DbOpenDatabase(tnsname, user/PWD, 4)
I get always this Statement in the DB-queue
SELECT parameter, VALUE
FROM SYS.nls_database_parameters
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET')
Can me anyone tell me why I get this statement and how I can disable it?
Best Regards
AndyHi,
What can you do/change?I must ask next week my boss when he is back,
what kind of changes I can do.
Can you add a PL/SQL call to DBMS_APPLICATION_INFO into application?my boss must give me the permission to do a call to DBMS_APPLICATION_INFO.
A way to identify the source of the badly behaving code is required; whether that be within the DB or external of it.I think so too.
So please wait, until I have talk with my boss, than I will give you the answer you want. Sorry.
Any other ideas, what I can do without call/changes on the database to find the problem?
Best Regards
Andy -
Executing the folowing statement to create a session object in OO4O, takes a very long time. (more than a minute)
It was called from a VB6 program. (exe file)
Set session = CreateObject("OracleInProcServer.XOrasession")
This is the case on a Windows 7 SP1 (64 bit) machine.
On a Windows 2003 server SP1 (32 bit) I don't have this problem.
Once the object is created, everything goes fast enough.
I created sessions objects before on the Windows 7 machine, using the same method, but from a VBA macro in Excel and Word.
From VBA, the object is created immediately.Please post your question in the OO4O forum. This forum is only for Oracle DB questions.
OO4O and Wizards [ARCHIVE] -
OO4O & VC++ 4.0
Hi,
I would like to use OO40 in a VC++ 4.0 project.
I am using the version 8.1.6.3.13 for OO4O and Oracle 8i 8.1.6 Release 2 for Database.
I have included the needed libraries.
I have tried to compile the project, and I have got a lot of compilation errors into oracl.h file, like these:
c:\orant81\oo4o\cpp\include\Oracl.h(751) : error C2501: 'bool' : missing decl-specifiers
c:\orant81\oo4o\cpp\include\Oracl.h(751) : error C2146: syntax error : missing ';' before identifier 'GetAutoCommit'
c:\orant81\oo4o\cpp\include\Oracl.h(752) : error C2061: syntax error : identifier 'bool'
c:\orant81\oo4o\cpp\include\Oracl.h(788) : error C2146: syntax error : missing ';' before identifier 'OValue'
c:\orant81\oo4o\cpp\include\Oracl.h(790) : error C2146: syntax error : missing ';' before identifier 'OValue'
c:\orant81\oo4o\cpp\include\Oracl.h(792) : error C2146: syntax error : missing ';' before identifier 'OValue'
c:\orant81\oo4o\cpp\include\Oracl.h(795) : error C2146: syntax error : missing ';' before identifier 'OValue'
c:\orant81\oo4o\cpp\include\Oracl.h(1717) : error C2146: syntax error : missing ';' before identifier 'OServer'
c:\orant81\oo4o\cpp\include\Oracl.h(1720) : error C2146: syntax error : missing ';' before identifier 'OServer'
c:\orant81\oo4o\cpp\include\Oracl.h(1752) : error C2146: syntax error : missing ';' before identifier 'OObject'
c:\orant81\oo4o\cpp\include\Oracl.h(1754) : error C2144: syntax error : missing ';' before type 'int'
c:\orant81\oo4o\cpp\include\Oracl.h(1826) : error C2501: 'bool' : missing decl-specifiers
I have read the documentation of this version of OO4O and I know that it isn't compatible with VC++ 4.0. So, I would like to know:
Which is the compatible version of OO4O with VC++ 4.0?
Where can I find it?.
Please reply also to my e-mail.
Thank you a lot.
Bye.
Raul Serrano
Cordial Iberia S.L
E-mail: [email protected]OO4OからODP.Netに変更した理由としましては、64bit環境ではOO4Oは使用できないとあったためです。わたしもハマりました。コレ。
サーバーにマルチホームでOracle Client 32bitをインストールすることで対処しました。 -
OO4O / OIP catch exception
Hi all,
I develop an application and use VC++ 6 and the COM OIP Interface. My problem is, how can I catch an exception before I get the error “KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception” like as OO4O ?
This is a short part of code as an example.
if (CLSIDFromProgID(OLESTR("OracleInProcServer.XOraSession"), &clsid) != NOERROR)
return FALSE;
TRY
OraSession oSession;
OraDatabase oDatabase
if (!oSession.CreateDispatch(clsid, &e))
return FALSE;
oDatabase = oSession.GetOpenDatabase(dbname,cAccount,options);
return TRUE;
CATCH_ALL(e)
HandleError(e);
END_CATCH_ALL
When I use the right account information, all is well. When I use bad account information I get an exception and can catch and handle this, but first I get the kernel message.
When I use the library from oo4o and do the same, I can catch the exception without the kernel message.
What is wrong or what is missing?
Thanks for your Help
Message was edited by:
system4pretty much. There is classes above Exception in the hierarchy, specifically Throwable, but you're not supposed to catch those.
-
Hi
I'm looking for suggestions on good books to get when using OO4O with VB 6 and VB.NET
thanksHey Ralph:
I'm new to OO4O and I recently went looking for some books. The only thing I found (that concentrated on OO4O) was a book titled:
"Oracle and Visual Basic Developers Handbook" by Jim Fedynich & others...
I found it on Amazon.com and it is listed as "Out-of-Print - Limited Availability" but I was able to purchase it through one of the Amazon Marketplace booksellers.
Hope this helps..
-Evan Veal -
OCI vs OO4O vs Oracle OLEDB vs MS Oracle OLEDB
I'm developing an application that needs to get database schema information (Tables, Columns, Stored Procedures, Views, etc.) as well as execute SQL statements against an Oracle database. From a developer's perspective, is their an advantage of using one of the above listed technologies over the other?
Here's a brief outline of my experience with each thus far:
I've briefly worked with OO4O and it doesn't seem to allow me to browse the schema objects unless I know the name of the schema.
The MSOLEDB provider for Oracle is very, very slow...
The Oracle OLEDB provider seems to work OK.
I've not used the OCCI method.
Any comments would be appreciated.I'm developing an application that needs to get database schema information (Tables, Columns, Stored Procedures, Views, etc.) as well as execute SQL statements against an Oracle database. From a developer's perspective, is their an advantage of using one of the above listed technologies over the other? OCI is the lowest programmatic layer, and the most complicated.
All other layers are built using OCI.
The choice depends on user's requirement - ease of use, speed, functionality etc etc.
Here's a brief outline of my experience with each thus far:
I've briefly worked with OO4O and it doesn't seem to allow me to browse the schema objects unless I know the name of the schema.
The MSOLEDB provider for Oracle is very, very slow...
The Oracle OLEDB provider seems to work OK.
I've not used the OCCI method.
Any comments would be appreciated. -
I tried posting in the other forum 0040, thousands of views, but no replies.... to most of the questions in that forum, so going to try my luck in here, please help if you use OO4O and VBA for Excel 2003.
I have been able to successfully connect to the database and execute a few Select Statements and bring that data back into Excel, but I am having trouble executing a DDL Create Table Statement, here is my code, please help, not sure what is going on. I have the drivers for OO4O installed in XP and "Oracle InProc Server 5.0 Type Library" is checked marked for use.
All the examples that I seen reading Docs is to Create a Table with Datatypes and then do inserts, I have no seen:
create table tablename as (select * from table where blablabla);
Can this be done or do I have to employ some other trick, I don't see doing insert as an option, I am dealing with milliosn of records, and that is not even an option, I have to do a create table as .....; and fill it with data from the select.
Ok, I am making this Excel VBA thing that will execute a series of queries and bring in Analysis Data, the first step that I need to do is execute a DDL query to create a Table:
Any variables that hold data are in the code, I just simplified it and removed them, that all is good, I put watch on them to see what values they got.
Sub Process_AdHoc_Analysis_Report()
Dim OraDynaset As Object
Dim objSession As Object
Dim objDataBase As Object
Dim sql1 As String
Set objSession = CreateObject("OracleInProcServer.XOraSession")
Set objDataBase = objSession.OpenDatabase("database", schema & "/" &
password, 0&)
sql1 = "create table " & tablename & "_1" & " as select * from table
where cmpgn_id='" & campaignid & "';"
objDataBase.ExecuteSQL (sql1) <-- here is the error "Run-time error
*'440': Automation error*
End SubHi,
Glad to hear that you have found the solution. Thank you for coming back and let us know the result:)
Best Regards,
Tracy
Tracy Cai
TechNet Community Support
Maybe you are looking for
-
Editor doesn't see text flowing around object
I've placed a psd file with a transparent background and next to it a text frame. The text flows around the non transparent parts of the object. When the editor opens the file, the image shows as kind of a preview version. Light coloured and with a n
-
How to highlight the value of a progressbar ?
Hi all. I have successfully written a jdeveloper program which deletes files inside a folder and there is a progressbar to show the progression of the deletion. And I want to ask if there is a mean to change the brightness of the percentage represent
-
Getting ditributed timeout error
Hi, when i 'm executing a procedure using dblink i'm getting following error ERROR at line 1: ORA-02049: timeout: distributed transaction waiting for lock ORA-02063: preceding line from PROD ORA-06512: at "PURGE.PURGEPERSON", line 111 ORA-06512: at l
-
How can we block double invoicing ?
Hello Experts , I have done PO for quantity 1 , with GR based IV ticked & invoice receipt ticked . When I create IR for this , it allows me to create it twice with quantity 1. Whether there is any way we can block this ? (GR is statistical since it
-
can nokia 2626 connect to computer? how can i download mp3 to the phone{nokia 2626}? what is packet data?