Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - arose

Pages: [1]
1
General Board / Re: Import Data Model from Oracle Database
« on: September 26, 2009, 09:05:36 am »
I have a similar problem.  

Attempting to import a DB schema from Oracle using the MS ODBC driver, I can connect to the Oracle database, but get an empty list of tables.  

Using the Easysoft ODBC Driver for Oracle, I can get the list of tables, and even import one or two tables at a time, but if I select a few more tables (say 5 or 6) or all of the tables, it begins to perform the import, and dies.  

The Microsoft error report indicates a failure in:
AppName: ea.exe       AppVer: 7.1.0.827       ModName: esoracle.dll
ModVer: 3.2.0.3       Offset: 0000626f

Both the MS and Easysoft drivers work properly using MS Query, and Toad, so I wonder if the problem might be in the way EA is accessing the driver.

Does anyone know of someone who has successfully imported an Oracle schema into EA?

2
Bugs and Issues / Re: MSSQL model search fails due to timeout
« on: August 25, 2008, 11:22:50 am »
The inability to specify a timeout for MSSQL forced me to redesign the query, which a should probably have done anyway, since it now runs in about 10-15 seconds :-)

Allan

3
Bugs and Issues / MSSQL model search fails due to timeout
« on: April 17, 2008, 05:32:04 am »
I have build a certain model search query that I am using with a large MSSQL repository.  The connection string is:
"ea_bigdb --- DBType=1;Connect=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=EA_bigdb;Data Source=<servername>"

The query times out after 40 seconds.  Adding "Connect Timeout=90" or "Connect Timeout=0" makes no difference - the query still fails after 40 seconds.

If I copy the connect string to a UDL file, modify it using the data link properties dialog box, specifying a connect timeout value, the connect timeout value is not stored in the UDL file. I had thought that the property "Connect Timeout" is a valid property of the sqloledb provider.

How can I adjust the query timeout for an MSSQL repository?

4
Bugs and Issues / Re: error when using api to delete a diagram link
« on: August 25, 2008, 11:20:54 am »
A final note on the DiagramLinks.DeleteAt API call...

The bug was finally fixed in EA 7.1.832.  So as of that build, making this API call actually does delete the specified row in the t_diagramlinks table.

Allan

5
Bugs and Issues / Re: error when using api to delete a diagram link
« on: May 03, 2008, 03:44:29 am »
The Sparx team has responded to this bug with the following emails:

-------------------------
The issue is DiagramLink.DeleteAt has invalid SQL for certain DBMS types. This issue has been resolved internally and will be found in the next build of EA.
-------------------------
and:
-------------------------
The tests will be run against all supported EA DBMS.
-------------------------

So this is excellent news!

6
Bugs and Issues / Re: error when using api to delete a diagram link
« on: April 17, 2008, 08:33:47 am »
Hey David,

I appreciate your replies.  If there is one thing that takes more effort than working through tricky issues that one encounters, it is to working through someone else's explanation of *their* issues.

Anyway, I still plan to send the project to Sparx in the near future.

Allan

7
Bugs and Issues / Re: error when using api to delete a diagram link
« on: April 17, 2008, 05:45:49 am »
Well, there is the rub.  

Deleting elements from a diagram using the user interface actually removes the diagram link rows from t_diagramlinks, whether in an EAP file (using 3.5 or 4.0) or in an MSSQL repository.

Deleting the elements from a diagram using the API requires that one delete the diagramobjects and the diagramlinks using the .deleteat method.  The t_diagramobjects rows are deleted, but the t_diagramlinks rows are not.  Instead they have the "ishidden" column value set to true.

There are side effect of this.  

If one uses the api to delete elements from a diagram, and then runs diagram layout, and then adds the deleted elements back onto the diagram, the corresponding diagramlinks do *not* appear, since they are hidden.

If one then makes them visible using the Diagram->Visible Relations dialog box, one finds that the links retain the original geometry they had when deleted.

So, the main thing for me is that the API doesn't produce behavior that matches the built-in behavior, at least in this case. ...OR I'm not using it correctly.

8
Bugs and Issues / Re: error when using api to delete a diagram link
« on: April 17, 2008, 05:19:44 am »
Yes, the problem is the same using Jet 4.0.  The diagram links are hidden instead of being deleted.  It shows up clearly using a model search query like this (assuming only one diagram).

select b.start_object_id, b.end_object_id, a.*
from t_diagramlinks a
  left join t_connector b
  on a.connectorid = b.connector_id
order by b.start_object_id, b.end_object_id

9
Bugs and Issues / Re: error when using api to delete a diagram link
« on: April 15, 2008, 03:51:59 am »
Thanks for the suggestions.  I plan on sending the VB project to Sparx.  Running the loop from count to 0 makes no difference.  Using datatypes integer and long both cause the same error.

BTW, further investigation reveals that for an EAP file repository, the API deleteat call hides the rows (sets ishidden = true), rather than deleting them.

10
Bugs and Issues / error when using api to delete a diagram link
« on: April 11, 2008, 05:33:17 am »
I'm developing an EA addin using VB6, and have encountered an apparent bug when attempting to delete a diagramlink.  The call the triggers the error is:

Set moCurrentDiagram = moCurrentRepository.GetCurrentDiagram()
...
'Delete some diagram object
...
For i = 0 To moCurrentDiagram.DiagramLinks.Count - 1
    'if (link meets certain criteria) then
        'THIS CALL TRIGGERS THE ERROR
        moCurrentDiagram.DiagramLinks.DeleteAt i, True
    'end if
Next i
moCurrentDiagram.DiagramLinks.Refresh

These calls produce the same error:
        moCurrentDiagram.DiagramLinks.DeleteAt i, False
        moCurrentDiagram.DiagramLinks.Delete i

The repository is a MS SQL database, and the error displayed in a msg box is "Microsoft OLD DB Provider for SQL Server [-2147217900]  Invalid column name 'true'."

I can inspect the contents of the t_diagramlinks table to see the results of API calls and user actions.

Using the EA GUI, the deletion of a diagram object causes the appropriate t_diagramlink rows to be deleted when the diagram is saved.

Using the API call, the appropriate rows in table t_diagramlinks are not deleted as they are when using the GUI.

When the call is made when using an EAP file repository, there is no msgbox to indicate the error, but the resulting behavior in the diagram suggests that the same error is occuring.  For this reason, and the text of the error message, I suspect that the error is in the implementation of the API.

The error occurs in both of the versions I have installed: 7.1.827, and 7.0.817

Any suggestions?

11
Thanks, David.  I hadn't looked deep enough.

Allan

12
What API call are you going to use for laying out a diagram?  I haven't see any indication of such an API call in the documentation.

13
Ah, I just found Repository.RunModelSearch :-) for displaying query results in the model search window.

It would still be helpfull to know how to have GetElementsByQuery work with custom queries.



14
I'm also interested in being able to execute home-grown "Model Search" queries, because the output is so convenient for the user, who can click on a result row, and immediately find the element in the project tree.

When I call Repository.GetElementsByQuery("Recently Modified Elements","2008/01/01") it works - ie. with a built-in SQL query.

If I make my own copy of the same SQL query and call it "RecentlyModifiedQElementsAlso", I can demonstrate that it works using the user interface.  But when I call Repository.GetElementsByQuery("RecentlyModifiedQElementsAlso", "2008/01/01"), it triggers an error: "EA_MenuClick: Search Not Found".

There is a facility to create a Model Search from within an addin, using Repository.AddDefinedSearches and passing a string containing an XML version of a model search (such as one exported from the Model Search Management dialog).  This method successfully adds a search, which can be run manually like any other, but it still cannot be found using Repository.GetElementsByQuery.

So, my questions are "Is GetElementsByQuery intended to be able to find and execute Model Search queries that are not built-in queries?"  If so, how does one do it?  If not, can this feature be added?

15
This works:
  Dim oQueryElements As EA.Collection
  Dim oElement As EA.Element
  Set oQueryElements = Repository.GetElementsByQuery("Simple", "whatever")
  For Each oElement In oQueryElements
    msgbox "oElement.Name = " & oElement.Name
  Next oElement

Pages: [1]