Jump to content


sean.graves

Member Since 13 Jul 2004
Offline Last Active Aug 29 2012 11:12 AM
-----

Topics I've Started

Has anybody been able to embed internet explorer activex control and h

10 July 2012 - 04:48 PM

ProIV Version 5.5 or 6.2

Has anybody been able to embed Internet Explorer and hook onto the BeforeNavigate2 event in the ProIV client?

I have been able to embed the explorer and successfully been using Navigate2 for some time now.
But today I had one of those silly ideas and wanted to hook onto the BeforeNavgate2 event.

I made it a Kernel event but the problem comes with the mappings to the parameters.
If I leave all the parameters empty the event triggers ok.

But if I fill in pDISP and URL as a $ scratch variables when I try and access the $URL in the event I get an error message:

"Before Navigate:Bad Parameter passed AX Variant Type : 12"


Regardless of what I put into the mappings I get the same error.

Any help/ideas would be appreciated.

Thanks
Sean

Using MS SQL SERVER 2000

24 May 2005 - 09:12 AM

We have been using ISAM for years, and converted to Oracle two years ago.

We have now just converted our boot file definitions to MSSQL SQLSERVE 2000.

The first thing to strike us is how slow it is reading data compared to the same functions that use Oracle.

I have a function that has a primary table followed by several secondary tables.
There is a field in the primary table that indicates which secondary table it should read.
All secondary tables that are not required are DSELF'd in the before read.

All our tables have a primary key on the @F key fields.

Example
Primary Table
Secondary A before read if primary record type is not A then DSELF.
Secondary B before read if primary record type is not B then DSELF.
Secondary C before read if primary record type is not C then DSELF.

The Primary table has 95755 records which is broken down into
A 82790
B 11510
C 1455

Currently this is taking 69 seconds in ISAM and 434 seconds in MSSQL.

We then broke down the function as follows:
LS1: calls lscall 2, lscall3 & finally lscall4

LS2: Primary Table - Select specific A records
Secondary A

LS3: Primary Table - Select specific B records
Secondary B

LS4: Primary Table - Select specific C records
Secondary C


Using this method has brought the timings down to 110 seconds.

Does anybody know why having secondary tables has such an affect on the retrival times in MSSQL?

Are there any rules for writing functions that use MSSQL to optimise for speed ?


Regards - Sean Graves

How do I read MS SQL Server INT field datatype

14 January 2005 - 01:23 PM

How do I read MS SQL Server INT field datatype

I have an SQL database with a fieldtype of int (4 bytes).

CREATE TABLE [dbo].[MYTABLE] (
[MYKEYINT] [int] NOT NULL ,
[MYDATAINT] [int] ,
) ON [PRIMARY]
GO

MYKEYINT is indexed

MYKEYINT field has various values such as -1528, 1528, 512, 99
This type of field is used in various tables and is a key on some and data on another.

I am trying to set the @F in ProIV to read this data but am having trouble.

I have set the @F as follows for when it is a key
Type : NK
Name: MYKEYINT
Length : 4
Display Type: 5.0-
External Format: NUMBER
Storage Format: S4.0

I have created a flat screen to read the table I can read the positive values successfully ie 1528, 512, 99
However when I read the negatives eg -1528, I can enter the key to read and it finds the record but upon reading it proiv translates the negative value into s different value eg. -2847

Does anybody know how to set the @F external type when you are reading an INT (4 byte) field type from MSSQLServer?

Many Thanks
Sean Graves
Email: sean.graves@prodelta.co.uk

ORA-03123: operation would block

13 July 2004 - 01:56 PM

ProIV 5.5r333 & mfc 518
Windows 2003 Server
Oracle 9i.2.0.3.0

We have a global update function that has 2 characteristics.
They are indipendent from each other ie. ls1 starts at 1 ends at 1

The characteristic 1 has two tables in lookup that both read one record.
On the good read of the last file we have a for loop that loops around an array of 25 elements.
eg FOR #I = 1 to 25

For each array element we are creating an SQL DYNAMIC DELETE statement followed by an SQL DYNAMIC UPDATE.
Both statements are against two different tables.

When #I = 1 for the first DELETE and the UPDATE all is ok.

When #I = 2 for the second DELETE we get a Proiv message box giving a "366 SQL Error".
In the trace file we see the following:
764:=========== OraSqlError: DBerr 3123=>-366: ORA-03123: operation would block

If we put a #OK = COMMIT() after the update the DELETE goes through successfully.

We can get this happen using the above SQL DYNAMIC and using native ProIV updates to do the delete.

:)

We have currently set the following ProIV Environment / Database flags:
SQL_CURSORS=AUTO
SQL_AGGREGATE_KEY=Y

Database Section has
[DATABASE - SQLDEFAULT]
FILETYPE=ORACLE
CONNECTION=USER/PASSWORD@DATABASE
PRODB_CHARSET=8
LOCKED_ROWS_RETURNED=Y

The TABLE which is being deleted has had:
the table ANALYZED for COMPUTE STATISTICS.
the index dropped and re-created.

Does anybody know why Oracle should give the "ORA-03123: operation would block"?

And if so how to go about fixing the problem?

Thanks for any advice.
Sean