Sort list of procedures in Structure pane - sorting

I recently moved to Delphi 11.1 Enterprise Edition. I notice the list of procedures in the Structure Box for the form are not sorted as they were in Delphi XE3. I can't find a way to sort the list of procedures for each form.

Tools|Options|User Interface|Explorer|Explorer sorting

Related

Exclude databases from "database, table, procedure" search in DataGrip

Is there any way to limit the search for a table using Cmd+O ("database, table, procedure" search in DataGrip) to the current schema, open databases, or in some other way?
I have many databases with the same structure for different envs, and it is difficult to use the search because I need to go through the list of found tables to choose the one I'm interested in.
I am Max from DataGrip. There is no such possibility now. But we're totally agree that current implementation is inconvenient. We have been discussing this while creating our roadmap for 2018, and I hope we'll create an easy way to define various scopes in this search.

Can I (ab)use SQL-Server Analysis Services to create user generated reports?

Question:
We (that is to say I, single person) should implement "user generated reports" (in 1 month at most, presentation at the end of the month/start of the new month).
Problem 1:
By user, I mean users that do not have any technical skills, like SQL or VBA.
Problem 2:
Technology is .NET ONLY, so I cannot use Java (and things based on Java like Jasper)
Problem 3:
Exports to Excel should be possible (and I mean XLS or XLSX, not XML or CSV)
Problem 4:
Grouping of data should be possible (multiple groups)
Problem 5:
Database is Microsoft SQL-Server (presumable 2008 R2, but could end-up being 2008 R1 or 2005)
Bonus "Problem":
Web based, with ASP.NET WebForms, but can also be desktop based, if web is not possible
Now apart from the sheer ridiculousness of those requirements and time constraints...
One solution would be the report builder supplied by SSRS (SQL-Server Reporting Service).
However, there are some disadvantages, which I think are pretty severe:
The user creating the report basically still needs to know SQL (left, right, inner, outer join and their consequences). Since the user probably doesn't understand the difference, they will just blame me if they get no or wrong results (inner join on a null column for example).
The user creating the report knows nothing about the database/data-structure (e.g. soft deletes, duration dates). Also garbage-in garbage-out is probably going to be a problem, complete with wrong data etc. ...
If they are going to make a matrix, and are going to sum subtotals from unrounded values, the sum of the total is not going to match the sum of the subtotals, because the report is going to display something like only 2 digits after the comma (and therefore round the value to 2 digits) for subtotals, but it's going to calculate the total from the sum of all values (which are NOT rounded), not from the sum of the subtotals (which are rounded). Again, they will blame me or the data, or the report builder for it.
Since the report-builder is not going to display the number of results after adding an additional table with a join, a user will have no way of telling whether they have the right number of records, which will inevitably result in wrong results. Again, they will blame me.
Filters on dates: One needs to apply them, but not necessarily in the where, but in the join. Report builder doesn't support that. It's not possible to create a serious report like that.
Status: As said, we use soft-deletes, and a status field with status 99 for deleted records. Filtering status in the where is dangerous, and must sometimes occur in the join. Again, Report Builder doesn't support that, unless you use raw SQL, which is pointless since the users are not going to know SQL.
Installing report builder requires admin rights, or the IT department of the customer company to install it. And the appropriate .NET framework for the appropriate ReportBuilder , and the appropriate ReportBuilder for the appropriate Report-Server, since SQL-Server 2005 Reporting Service is NOT going to work with reports for SQL-Server 2008 Reporting Services, and SQL 2008 R1 not with R2. And also this requires all users capable of that to be in a certain SQL-Server reporting service report generator user role, which requires the IT department to put users into the appropriate active-directory group, which so far has never worked with any of the customers we had. Plus I don't trust the IT department to know that they install the appropriate ReportBuilder, if they agree to install it at all.
Now I once (a longer time ago) happened to view a presentation of SSAS (SQL-Server Analysis Services) on youtube.
But I don't find the link anymore.
But anyway, I don't have any experience in SSAS, only SSRS.
I think it would be possible to abuse SSAS in such a way, that the users could connect to it via Excel, and get the data and sum them more or less like they want to. Also, they would be able to see the raw data.
And I could pre-prepare a few queries for raw-data from tables (that, I could do with reportbuilder as well, via datasets).
Does anybody know SSAS well enough to tell me whether this is feasible in that amount of time ?
And if the add-in required for analysis server and Excel-versions (2007/2010) is compatible with all analysis-server versions, or if there are problems accessing 2008 R2 from Excel 2007 or SSAS-2005 from Excel 2010.
Or whether I am bound to run into more problems with SSAS than with ReportBuilder ?
If your question is whether SSAS is a reasonable approach to your problem, my answer is yes. The benefit of SSAS is that generally speaking the data is modeled in a way that is readily understood by business users and easily manipulated in Excel to produce a variety of reports with no knowledge of a query language. With any version of SSAS, you can use Excel versions 2007 or 2010. There is no add-in required for this - the provider is built into both Excel versions already. Furthermore, by putting the model into SSAS, you are actually making your data more readily accessible by a variety of tools - you can use Excel or SSRS or a variety of 3rd party tools if you so desire. In other words, you're not limiting your options with this approach, but expanding your options as compared to Report Builder.
That said, working with SSAS can be simple or hard. It depends on the type of data you're working with and the complexity of any calculations that must be added to the model. Whether you can achieve your goals in the amount of time you have available is not a question I can answer. It really depends on the type of data that you have and the type of reports that your users need.
I can point you to a couple of resources. I wrote an article for TechNet as a gentle introduction: http://technet.microsoft.com/en-us/magazine/ee677579.aspx. It was written for SSAS 2008 but the principles apply to SSAS 2005, SSAS 2008, SSAS 2008 R2, and SSAS 2012.
If you prefer a video introduction, see http://channel9.msdn.com/Blogs/rdoherty/Demo-Developing-a-SQL-Server-2008-R2-Analysis-Services-Database to start. You can find a lot of free video material on SSAS at channel9. Just do a search for SSAS.

How do I determine what's using Oracle Spatial?

We have an Oracle Enterprise Edition 10 installation and as its been explained to me by our DBAs, Oracle Enterprise installs include all extensions and you're simply licensed by what you use.
We've discovered we're using Oracle Spatial but we don't want to be. I can confirm for myself that its being used with this SQL:
select * from dba_feature_usage_statistics;
Unfortunately that's all I can find out. We have a large number of applications which use Spatial elements, but having asked all of our vendors they assure us their apps are using Oracle Locator (which is the free subset of Spatial).
So my question is simple - how do I discover exactly which app is using the Oracle Spatial extension?
Alternately (brought to light by ik_zelf's answer), how do I prove I'm only using the Locator subset of Spatial.
Check the sdo metadata:
select * from mdsys.sdo_geom_metadata_table where sdo_owner not in ('MDSYS', 'OE')
when you dig a little deeper in the dba_feature_usage_statistics you will find this query as part of the determination of what is being used and what not. The schema's MDSYS and OE are not counted, even when they have sdo objects.
There is a list of functionality that is part of Oracle Spatial vs. Oracle Locator on the Oracle website: http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_locator.htm#SPATL340 - specifically pay attention to the section that lists things only available in Oracle Spatial.
The short story is that (basically) the following things are off the table for Locator:
Topology
Network data model
GeoRaster
Geocoding
In-built data mining functions
Linear referencing
Some spatial aggregation functionality
Some parts of the sdo_geom package
Storage, indexing, partitioning, sdo_util package, coordinate transformations and more are all fully within Locator. I would simply check the dba_source view for any stored procedures that use any of the prohibited functions.
For code outside of the database, I guess you have to take someone's word for it, but in my experience external applications tend to use their own methods rather than Oracle in-built features.

Merging two dataset

I have one "big" TOracleDataSet which I can't change 'cause it's using in many different parts of huge project. I want to add just one record to this dataset for using in another grid. The solve way I see it is create another one oracle data set which will combine wanted record and another ones from "big" dataset. In other words, "small" dataset includes "big" dataset.
Try this maybe?
TxQuery Project
This was a commercial project at one time, but the auther was convinced to release it opensource.
TxQuery component is a TDataSet descendant component that can be used to query one or more TDataSet descendant components using SQL statements. It is implemented in Delphi 100% source code, no DLL required, because it implements its own SQL syntax parser and SQL engine.
That quote was taken from the page of the current maintainer, I believe, Chau Chee Yang .
Either this or maybe TClientDataset might be your best options.

Slow in filling .NET DataSet from Oracle 9i

This is a problem that my friend asked over the phone. The C# 3.5 program he has written is filling a Dataset from a Patient Master table which has 350,000 records. It uses the Microsoft ADO.NET driver for Oracle. The ExecuteQuery method takes over 30 seconds to fill the dataset. However, the same query (fetching about 20K records) takes less than 3 second in Toad . He is not using any Transactions within the program. It has an index on the column (Name) which is being used to search.
These are some alternatives i suggested :-
1) Try to use a Data Reader and then populate a Data table and pass it to the form to bind it to the Combo box (which is not a good idea since it is likely to take same time)
2) Try Oracles' ADO.NET Driver
3) Use Ants profiler to see if you can identify any particular ADO.NET line.
Has anyone faced similar problems and what are some ways of resolving this.
Thanks,
Chak.
You really need to do an extended SQL trace to see where the slowness is coming from. Here is a paper from Cary Millsap (of Method R and formerly of Hotsos) that details doing this:
http://method-r.com/downloads/doc_details/10-for-developers-making-friends-with-the-oracle-database-cary-millsap
Toad would typically only fetch the first x rows (500 in my setup). So double check if the comparison is valid.
Then you should try to seperate the db stuff from the form stuff if possible to see if the db is taking up the time.
If that's the case, try the Oracle libraries if that is any faster, we've seen 50% improvements between the latest Oracle driver and the standard Microsoft driver.
Without knowing the actual code he uses to accomplish his tasks and not knowing the number of rows he's actually fetching (I'm hoping he doesn't read all 350K of them?) it's impossible to say anything that's gonna help him.
Have him add a code snippet to the question for clarity.

Resources