|
Hello!
I want to implement simple COM object which will communicate with Oracle database somewhere on internet. It looks rather simple. But I have a possibility to use either C++ or C# technology. As I do not know C# very well: someone can help and put some comments - which technology would be simpler to write/manage ?
Or maybe there exists some ready-to-use sample?
Thanks for help
|
|
|
|
|
|
Five Steps to Rapid Development with TierDeveloper 3.0
Unlock the power of rapid development when you use TierDeveloper from AlachiSoft in your N-Tier application development. Follow the steps below to quickly design, generate, and deploy a great portion of your real-life N-Tier application.
For free evaluation download please visit
http://www.alachisoft.com/download.htm
STEP 1: HAVE YOUR DATABASE READY
1. Create your database in Microsoft SQL Server, Oracle, or DB2. You can design and create your own database. Or, you can use the sample database provided with TierDeveloper. Or, you can use one of the databases/schemas already provided with your database. They are:
a.Microsoft SQL Server: Northwind database. Just create a new TierDeveloper project against this database.
b.Oracle: DEMO schema with EMP, DEPT, BONUS, SALGRADE, and other tables. Just create a new TierDeveloper project against this schema.
c.DB2: SAMPLE schema provided with DB2. Just create a new TierDeveloper project against this schema.
2. Populate database with data. This would ensure that you have a fully working database ready to be used by a web application.
STEP 2: KNOW YOUR APPLICATION'S DATABASE INTERACTION
1. Identify table-columns your app will access: Before you do anything, you must know which tables and which columns in these tables is your application going to access.
2. Identify transactional operations: Identify where in your application you need to do insert, update, delete, or single-row select operations.
3. Identify queries: Most applications need to retrieve collection of rows from one or more tables in the database. Identify all places where you need to issue queries. These could be single-table queries or could involve complex joins or nested queries.
4. Identify stored procedures to call: If there are any stored procedures that already exist in the database which you need to call, identify them here. These stored procedures should be those that contains complex business rules or other data manipulation logic. Do not manually create stored procedures in the database for transactional operations or for queries that are otherwise handled by TierDeveloper. TierDeveloper can generate stored procedure DDL for you in that situation.
5. Identify bulk updates or deletes: Most applications do not require bulk updates or deletes but some do. If you have any, identify them.
The best way to understand your applications database interaction needs is to understand its behavior from the user's perspective and focus on all the data that needs to be displayed to the user or changed by the user.
STEP 3: CREATE TIERDEVELOPER PROJECT
1. Connect TierDeveloper to your database: TierDeveloper uses OLEDB to connect to your database and reads its schema so it can let you define the mappings of middle-tier objects with tables in the database (based on what you have determined about your application's interaction with your database). Please note that even if you're going to generate Java/J2EE application that will use JDBC to connect to the database, TierDeveloper (the product) will use OLEDB to connect to your database.
2. Define data object mappings to your tables: Wherever you had identified table-columns that your application needs, define data objects mapped to these tables with the appropriate columns selected as data object attributes. You can map a data object to single table or multiple tables. You'll need multi-table data objects for situations where you're trying to issue a multi-table join query that returns data from multiple tables.
3. Specify transactional methods in data objects: Based on what you identified as your application's transactional needs earlier, you should now define those insert, update, delete, and single-row select as methods of your data objects. TierDeveloper lets you do that with point-and-click.
4. Define queries as data object methods: For each query that you identified earlier, define a query method in the appropriate data objects. Remember, a query returns a resultset which get translated into a collection of data objects by TierDeveloper generated code.
5. Define stored procedure calls as data object methods: Wherever you needed to call stored procedures, you need to define data object methods for them. Remember, these stored procedures contain sophisticated business rules. Any stored procedures for transactional operations or queries can be generated by TierDeveloper so you do not have to manually write them in the database.
6. Define bulk update/delete operations as data object methods: Wherever you need to do a bulk update or bulk delete, you'll need to define data object methods for them.
STEP 4: GENERATE AND RUN 50% OF YOUR APPLICATION INSTANTLY
1. Generate data objects: After you have defined all your data objects, you are ready to generate code for them. You can generate data object code in the following format:
a. .NET components
b. Enterprise Java Beans (for BEA WebLogic, IBM WebSphere, Oracle 9iAS, JBoss, and iPlanet)
c. Java Objects (for any JDK based environment including JSP/Servlet engines)
2. Build and deploy data objects generated code: If you machine has the appropriate build environment for your platform, TierDeveloper asks you whether you want to build the generated data objects code. If you say "yes", it creates the following. It also then deploys them to your appropriate environment.
a. .NET assemblies for .NET components. They are deployed through component services.
b. JAR file for Enterprise Java Beans. They are deployed to your J2EE app server
c. JAR file for Java Objects. They are deployed to your J2EE app server or JSP/Servlet engine
3. Generate web application: After you have generated and build the data objects, you can generate a fully working web application. The purpose of this web application is to let you test all the functions of data objects. This also serves as a good sample/example code for you to copy into your own web application development. TierDeveloper generates the following types of web applications:
a. ASP.NET pages in C# or VB.NET and with or without XML/XSLT.
b. JSP pages to call Enterprise Java Beans.
c. JSP pages to call Java Objects.
4. Build and deploy web application: TierDeveloper can also build the web pages for you. It does the following for each platform:
a. Build a .NET assembly for ASP.NET pages. They are deployed to IIS
b. Build a WAR file for JSP pages. They are deployed to J2EE app server or JSP/Servlet engine
5. Run deployed web app with data objects: Now that you have successfully deployed the data objects and the web app, you can run the web app. The really nice thing is that all this generated code is now working against your own database and in your own environment. You can see all the behavior of the data objects through this web app and also use it as a guide in your own web development. Try this and you'll be convinced about TierDeveloper being a true Rapid Development tool.
STEP 5: DEVELOP REMAINING 50% OF YOUR APPLICATION
After running and verifying that all the generated code contains your desired functionality and runs correctly against your database, you are now ready to develop the rest of the application. The areas you are likely to need to develop in your application are:
1. Presentation Layer (Web Pages): Use TierDeveloper generated web app as a sample/example for quickly developing your own. You can even copy/paste a lot of the code from the generated web app into yours, thereby speeding up your development work even further.
2. Business Objects: Although TierDeveloper generated code contains all your data manipulation logic and some of your business rules as well (in the form of data validation or stored procedure calls), you will most likely have to develop additional business objects. If you're not an expert in your target platform (.NET, J2EE, or J2SE), you can learn from the generated data objects as your business objects are likely going to be in the same environment and would follow similar design approach.
|
|
|
|
|
Hello and hi
i have two word document files 1 and 2 in which
some text is written
i want to compare these words files(character by chracter)
and the result(difference) will stored in another word file 3.
so that at the last 3rd file contains the text of both first and 2nd file
and there difference is highlighted that following things are in 2nd file and not in ist file
Using VB 6.0
any helping material will also be appriciated
|
|
|
|
|
Why not use the FC program from the command prompt? This will compare each file and you can even redirect the difference to another file. Example:
FC "C:\YourPath\File1.txt" "C:\SomeOtherPath\File2.txt" > difference.txt
Other possiblities articles on CP are:
Chris Maunder wrote: A better front end to WinDiff[^]
Stephane Rodriguez wrote : Diff tool[^]
-Nick Parker
DeveloperNotes.com
|
|
|
|
|
Only problem is that Word files are binary files. He wants to compare the text content. When comparing text files, FC and WinDiff are very nice, but comparing binary files either produces unintelligible output that doesn't accurately reflect the differences in text content (due to various binary format issues).
As for the original poster, I've never seen anything that can do this, but you could check out office.microsoft.com and see if any of their partner companies have anything.
Other than that, next time you send a Word document out, turn change tracking on and you can compare and merge changes when the document returns to you.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Heath Stewart wrote:
Only problem is that Word files are binary files.
Another great reason for using XML as the data store in Word 2003.
-Nick Parker
DeveloperNotes.com
|
|
|
|
|
In this case, someone should use the XML Diff tool from Microsoft (little known utility). Due to various whitespace problems and the fact that attributes can be unordered, it is better than simply doing a text diff because it canonicalizes the data before diff'ing it. I don't remember where to find it, but a search on MS's web site should reveal it's location (if it still exists as a project).
If nothing else, Nick, I think I have a copy lying somewhere around the office you could grab.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Ali-imran wrote:
Using VB 6.0
Ok, if you must use VB 6.0, it appears that this is level of control is built into the Microsoft Word Object Library. You can read a quick article here[^]. If you want to do something in .NET, check the Office Primary Interop Assemblies[^]. HTH
-Nick Parker
DeveloperNotes.com
|
|
|
|
|
Hi,
it must be me, but I cannot get my .net application working on any machines other than the one I developed it on.
The trouble started when I started using the OLEDB ADO.Net stuff. Since then, the application doesn't even load, and complains about unhandled exception error.
I've installed Framework 1.1, but still no joy.
What am I forgetting to do?
Pauwl
|
|
|
|
|
update your Microsoft Data Access Component? (MDAC)
Although I think .NET framework has it.
Sonork 100.41263:Anthony_Yio
|
|
|
|
|
Pauwll wrote:
Since then, the application doesn't even load, and complains about unhandled exception error.
You might want to find out what the error is. I guess you probably don't have the .NET SDK installed on that machine, so you can't use a debugger. But at least you can do a catch-all try-catch block and show a messagebox or something with the error info. Then post it here, and we might be able to help you.
|
|
|
|
|
Did you add your connection string as a configurable option? This is what the <appSettings> section of your application configuration file (yourappname.exe.config) is for. When you move it to a different machine with a database of its own, change the connection string. If you are using a secure RDBMS and itnegrated security, make sure the user has permissions to access the RDBMS.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
The application works fine on my other development machine, so it's not the connection string.
When CATCHing the error, I get "Object reference not set to an instance of an object".
Doesn't tell me much.
I noticed the same with an application I'd made using ChartFX for .Net as well. I'd forgotten to distribute the required ChartFX DLL as well. I'm not using any strange ones though in this project, and as mentioned, the problems started happening when I started using the System.Data.OleDB stuff.
Any ideas anyone?
Pauwl
|
|
|
|
|
Here's a thought...debug your application!
Put a breakpoint at the top of your try block and step through the code in your debugger. After all, debugging your app is just as important in the development cycle. Look at each reference while stepping through and figure out what's null and on which line the exception is thrown.
And the redistribution of the .NET framework has nothing to do with it. It's the same on every machine, except some things are not supported on Windows (only Windows NT) because of the underlying OS. Anything in System.Data.OleDb should be fine because there's nothing OS-specific, but make sure you're running the right version of the .NET Framework on both machines because the various framework versions (i.e., 1.0, 1.1, etc.) are not 100% backward and forward compatible.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Heath,
funny thing is, when I run the application on a machine with a debugger - no problem.
we have 2 development machines, and 2 test machines.
We've just re-installed one development machine with Win2K. The other has XP on it.
The test machines are Win2K and XP as well.
If I run the application on either of the development machines, no problem. As soon as I move to one of the test machines (which have Framework 1.1 isntalled, and as far as I can see, exactly the same DLL's as the development machines), it stops working.
Other .Net apps I create work fine, but just as soon as I have something use the System.Data stuff, it no longer works. Strange. Have tried moving the DLL's over as well.
I'll make a sample app, and post the whole code, see if anyone can reproduce it.
thanks,
Pauwl
|
|
|
|
|
Do you run the test machines under different credentials while using integrated security on the RDBMS? Did you check the code access security policies (with the Microsoft .NET Framework Configuration tool in Administrative Tools)?
It could also be that the computer itself has different restrictions according to a domain policy. I know I don't let our test bay have the same privileges as the development machines on our little network.
There's obviously a reason for it, but the framework has nothing to do with it. Something that's affecting the functionality of the framework (i.e., user permissions, code access policies, or domain restrictions) is at fault. The framework will work the same from computer to computer without such things in place. That's kind of the whole idea of a unified framework as opposed to all sorts of DLL versions in DLL hell.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
This means your're creating an object using some API and it's returning a null. You're then trying to access properties or methods on this object.
I'd take a look at the StackTrace property of the exception and display that in your messagebox (or however you're displaying what you have above). That should give you the line number etc. (at least on a debug version of the code, not sure on release actually).
I, for one, do not think the problem was that the band was down. I think that the problem may have been that there was a Stonehenge monument on the stage that was in danger of being crushed by a dwarf.
-David St. Hubbins
|
|
|
|
|
All,
thanks for the comments and assistance. I've now found out what's causing it, but still don't know why.
When I log on to either of the development machines and run the application, it works fien. When I logon to the test machines AND LAUNCH THE APPLICATION FROM THE NETWORK then it bombs out. If I copy the files to the local test machine, it then works fine.
It's sorted me out enough to carry on testing, but still very unsure of why this could be happening.
Any ideas welcome, but I have my workaround for now
Pauwl
|
|
|
|
|
All System.Data stuff requires MDAC version 2.7 or greater, which is not installed as a component of .NET Framework (1.0 or 1.1). You can get it here[^].
However, before you install that, I'd suggest installing the VS.NET remote debugging components on your test machines so that you can debug them from your development machines. Do this, and you can be sure that it's MDAC's absense that's causing a problem, and not something else in your code.
--
Russell Morris
"So, broccoli, mother says you're good for me... but I'm afraid I'm no good for you!" - Stewy
|
|
|
|
|
I know that I have Data in the clipboard with the DataFormat.MetafilePict.
But I can't get it. My code is more or less the next:
/////////////////////////////////////////////////////////////
IDataObject iData = Clipboard.GetDataObject();
if ( iData.GetDataPresent( DataFormats.MetafilePict) )
{
System.Object obj;
System.Drawing.Imaging.Metafile pMetafile;
obj = Clipboard.GetDataObject()>GetData(System.Windows.Forms.DataFormats.MetafilePict );
}
/////////////////////////////////////////////////////////
Obviusly in the Debug, I enter inside the first if condition, so the code executes but the System::Object obj can't keep the data of clipboard and keeps a undefined value after the asignation.
It seems a contradiction, isn't it ?
Can anybody say me anything about get MetafilePict Data from Clipboard ?
Advanced Thanks, everybody.;)
|
|
|
|
|
(Not saying this is your problem, but...)
As written, the code you supplied will not work as you expect.
You declare "System.Object obj;" inside the if() statement. Therefore as soon as you exit the block (next line) - obj is no longer a valid object.
To correct this (if it isn't just a typo in your sample), move the System.Object obj; declaration before the if( Data.Get....) statement.
|
|
|
|
|
OK, thanks for reply, there was only an exemple. You are right, but if you proove the code with the correct order ( as you very well are saying ), you will see that doesn't work well ( The object 'obj' doesn't keep the data..).
I have read in Microsoft support that there is a debug in this cases that imposibility the correct retriving some kind of Data from Clipboard, as Metafiles ( I hope that the next version of .NET will correct this cuestion.)
Thank you very much Arlen
|
|
|
|
|
Can anyone help ?
A web site sends purchasers an email containing a unique URL. This page contains a button which initiates the download of their new software. Whilst this works well and allows us to track access I've got one small practical problem: When the download completes the user is left looking at the same page. I'd much prefer it if they were redirected to (say) a 'Thank you' page once the transfer is complete.
My C# code currently calls the Response.Redirect method with the URL of the file in question. But of course once this finishes the connection has been closed.
Is there a better way to do this ? Can anyone point me to an example please ?
Many thanks
Jerry
|
|
|
|
|
If I'm understanding you correctly, I've never seen a webpage detect when a download is finished since it starts another stream to download the file. This is outside of the Response you're currently interfacing with the user on. I think your best bet would be javascript that goes to a thank you page and then starts the download. I have seen pages do that.
In any event, you might have better luck posting this on ASP.NET forum since it's pretty ASP.NET specific.
I, for one, do not think the problem was that the band was down. I think that the problem may have been that there was a Stonehenge monument on the stage that was in danger of being crushed by a dwarf.
-David St. Hubbins
|
|
|
|
|