473,657 Members | 2,378 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

UDF Design Question

Since I haven't been able to find out yet how to get my Eclipse debugger to
step through my Java UDF code, I am adding old-style File I/O debugging to
some of my UDFs. I'm not sure of the best way to design this though and am
looking for some suggestions.

Since my class might contain several UDF methods, for instance, several
versions of the same basic UDF but with different signatures for different
situations, e.g. count(needle, haystack), count(needle, haystack, start),
and count(needle, haystack, start, finish), any or all of which might want
to do logging, I've decided to create separate methods for each of the
following tasks: create/open the log file; write to the log file; close the
log file.

Now, what should I do if one of the methods that works with the log throws
an exception? I'm trying to figure out if it is best to display an error
message and stacktrace on the console and then do a System.exit() or if
there is a better approach? I'm not clear on what behaviour DB2 wants in
this case but I'd like to give as clear and specific message as I can about
the problem. In other words, I'd much rather see this when I run the query:

UDF count(needle, haystack, 7) failed; log file could not be opened due
to security violation

than this

UDF failed.

Could any of you Java UDF experts please share your experience on this
point?

--
Rhino
---
rhino1 AT sympatico DOT ca
"There are two ways of constructing a software design. One way is to make it
so simple that there are obviously no deficiencies. And the other way is to
make it so complicated that there are no obvious deficiencies." - C.A.R.
Hoare
Nov 12 '05 #1
7 1594
I don't believe there's a way to debug a JAVA UDF in DB2... procedures,
yes. I believe that support is in development, though I can't say when
it will be released. There is a chance the Stored Procedure Debugger
MIGHT work for JAVA UDFs similar to how to works for JAVA procedures,
but I doubt it and I'm unfamiliar with that tool.

Do NOT use any System.exit() or similar calls inside a UDF or procedure
(collectively "routines") . This will bring down the process and may
cause unexpected errors/hangs in DB2 processing -- the DB2 documentation
specifically FORBIDS calling any type of exit() call inside a routine.
If your routine simply throws an exception that you do not handle (or
handle and then throw again), your client will receive a -4302 SQLCODE
error, which is probably the best behaviour to have in this case. The
stack traceback associated with the exception will be written to the
db2diag.log, and you should be able to determine from that stack
traceback what function you were executing when the exception occured.
In other words, DON'T catch any exceptions caused by writing to your
diagnostic file; just let DB2 handle it and it should write the
information you require to the db2diag.log automatically.

Cheers!

amurchis
Rhino wrote:
Since I haven't been able to find out yet how to get my Eclipse debugger to
step through my Java UDF code, I am adding old-style File I/O debugging to
some of my UDFs. I'm not sure of the best way to design this though and am
looking for some suggestions.

Since my class might contain several UDF methods, for instance, several
versions of the same basic UDF but with different signatures for different
situations, e.g. count(needle, haystack), count(needle, haystack, start),
and count(needle, haystack, start, finish), any or all of which might want
to do logging, I've decided to create separate methods for each of the
following tasks: create/open the log file; write to the log file; close the
log file.

Now, what should I do if one of the methods that works with the log throws
an exception? I'm trying to figure out if it is best to display an error
message and stacktrace on the console and then do a System.exit() or if
there is a better approach? I'm not clear on what behaviour DB2 wants in
this case but I'd like to give as clear and specific message as I can about
the problem. In other words, I'd much rather see this when I run the query:

UDF count(needle, haystack, 7) failed; log file could not be opened due
to security violation

than this

UDF failed.

Could any of you Java UDF experts please share your experience on this
point?

Nov 12 '05 #2
Thanks for the reply!

I've never managed to get the stored procedure debugger to work despite a
few attempts but the manual swears that debugging of UDFs *is* possible; see
my other thread from a couple of days ago. I just can't find out how to get
it to work.

Anyway, I've been using File I/O techniques to debug. Your remarks were
quite helpful in reminding me what I *should* be doing in my UDFs ;-)

I'm going to go clean up those UDFs now ;-) I just have a couple small ones
that are in the "sandbox" while I try to figure out exactly how to do
everything.

Rhino

"amurchis" <am******@ca.ib m.com> wrote in message
news:42******** @news3.prserv.n et...
I don't believe there's a way to debug a JAVA UDF in DB2... procedures,
yes. I believe that support is in development, though I can't say when
it will be released. There is a chance the Stored Procedure Debugger
MIGHT work for JAVA UDFs similar to how to works for JAVA procedures,
but I doubt it and I'm unfamiliar with that tool.

Do NOT use any System.exit() or similar calls inside a UDF or procedure
(collectively "routines") . This will bring down the process and may
cause unexpected errors/hangs in DB2 processing -- the DB2 documentation
specifically FORBIDS calling any type of exit() call inside a routine.
If your routine simply throws an exception that you do not handle (or
handle and then throw again), your client will receive a -4302 SQLCODE
error, which is probably the best behaviour to have in this case. The
stack traceback associated with the exception will be written to the
db2diag.log, and you should be able to determine from that stack
traceback what function you were executing when the exception occured.
In other words, DON'T catch any exceptions caused by writing to your
diagnostic file; just let DB2 handle it and it should write the
information you require to the db2diag.log automatically.

Cheers!

amurchis
Rhino wrote:
Since I haven't been able to find out yet how to get my Eclipse debugger to step through my Java UDF code, I am adding old-style File I/O debugging to some of my UDFs. I'm not sure of the best way to design this though and am looking for some suggestions.

Since my class might contain several UDF methods, for instance, several
versions of the same basic UDF but with different signatures for different situations, e.g. count(needle, haystack), count(needle, haystack, start), and count(needle, haystack, start, finish), any or all of which might want to do logging, I've decided to create separate methods for each of the
following tasks: create/open the log file; write to the log file; close the log file.

Now, what should I do if one of the methods that works with the log throws an exception? I'm trying to figure out if it is best to display an error
message and stacktrace on the console and then do a System.exit() or if
there is a better approach? I'm not clear on what behaviour DB2 wants in
this case but I'd like to give as clear and specific message as I can about the problem. In other words, I'd much rather see this when I run the query:
UDF count(needle, haystack, 7) failed; log file could not be opened due to security violation

than this

UDF failed.

Could any of you Java UDF experts please share your experience on this
point?

Nov 12 '05 #3
Another thing you could do now that I think about it if you're coding in
PARAMETER STYLE JAVA.

Write a JAVA application that calls your UDF method DIRECTLY and passes
in different values. So long as both are compiled in debug mode, you
should just be able to start up the application under the debugger and
have at it.

For instance (pseudocode):

public static void main(string argv[])
{
for (i < number of times you want to execute the UDF)
{
value = yourclassname.y ourmethodname(f irstarg[i],
secondarg[i], ...);
System.out.prin tln(value);
}
}

This is essentially what DB2 would do if you're calling the UDF within a
SELECT query, where <number of times you ant to execute the UDF> is
the number of rows returned by the query.

However, this is useless if you're using PARAMETER STYLE DB2GENERAL due
to how the processing for that style ties back into the DB2 architecture
through the inherited UDF class. In that case what you're doing is
probably the best way to do it.
Rhino wrote:
Thanks for the reply!

I've never managed to get the stored procedure debugger to work despite a
few attempts but the manual swears that debugging of UDFs *is* possible; see
my other thread from a couple of days ago. I just can't find out how to get
it to work.

Anyway, I've been using File I/O techniques to debug. Your remarks were
quite helpful in reminding me what I *should* be doing in my UDFs ;-)

I'm going to go clean up those UDFs now ;-) I just have a couple small ones
that are in the "sandbox" while I try to figure out exactly how to do
everything.

Rhino

"amurchis" <am******@ca.ib m.com> wrote in message
news:42******** @news3.prserv.n et...
I don't believe there's a way to debug a JAVA UDF in DB2... procedures,
yes. I believe that support is in development, though I can't say when
it will be released. There is a chance the Stored Procedure Debugger
MIGHT work for JAVA UDFs similar to how to works for JAVA procedures,
but I doubt it and I'm unfamiliar with that tool.

Do NOT use any System.exit() or similar calls inside a UDF or procedure
(collective ly "routines") . This will bring down the process and may
cause unexpected errors/hangs in DB2 processing -- the DB2 documentation
specificall y FORBIDS calling any type of exit() call inside a routine.
If your routine simply throws an exception that you do not handle (or
handle and then throw again), your client will receive a -4302 SQLCODE
error, which is probably the best behaviour to have in this case. The
stack traceback associated with the exception will be written to the
db2diag.log , and you should be able to determine from that stack
traceback what function you were executing when the exception occured.
In other words, DON'T catch any exceptions caused by writing to your
diagnostic file; just let DB2 handle it and it should write the
information you require to the db2diag.log automatically.

Cheers!

amurchis
Rhino wrote:
Since I haven't been able to find out yet how to get my Eclipse debugger
to
step through my Java UDF code, I am adding old-style File I/O debugging
to
some of my UDFs. I'm not sure of the best way to design this though and
am
looking for some suggestions.

Since my class might contain several UDF methods, for instance, several
versions of the same basic UDF but with different signatures for
different
situations , e.g. count(needle, haystack), count(needle, haystack,
start),
and count(needle, haystack, start, finish), any or all of which might
want
to do logging, I've decided to create separate methods for each of the
following tasks: create/open the log file; write to the log file; close
the
log file.

Now, what should I do if one of the methods that works with the log
throws
an exception? I'm trying to figure out if it is best to display an error
message and stacktrace on the console and then do a System.exit() or if
there is a better approach? I'm not clear on what behaviour DB2 wants in
this case but I'd like to give as clear and specific message as I can
about
the problem. In other words, I'd much rather see this when I run the
query:
UDF count(needle, haystack, 7) failed; log file could not be opened
due
to security violation

than this

UDF failed.

Could any of you Java UDF experts please share your experience on this
point?


Nov 12 '05 #4
WARNING: This assumes you're not using any SQL inside your UDF. If that
is the case, you'll probably need to modify your UDF to take a
connection object as the first parameter (and open the connection inside
your application). Obviously, the "jdbc:default:c onnection" logic will
not work inside your application.

amurchis wrote:
Another thing you could do now that I think about it if you're coding in
PARAMETER STYLE JAVA.

Write a JAVA application that calls your UDF method DIRECTLY and passes
in different values. So long as both are compiled in debug mode, you
should just be able to start up the application under the debugger and
have at it.

For instance (pseudocode):

public static void main(string argv[])
{
for (i < number of times you want to execute the UDF)
{
value = yourclassname.y ourmethodname(f irstarg[i],
secondarg[i], ...);
System.out.prin tln(value);
}
}

This is essentially what DB2 would do if you're calling the UDF within a
SELECT query, where <number of times you ant to execute the UDF> is the
number of rows returned by the query.

However, this is useless if you're using PARAMETER STYLE DB2GENERAL due
to how the processing for that style ties back into the DB2 architecture
through the inherited UDF class. In that case what you're doing is
probably the best way to do it.
Rhino wrote:
Thanks for the reply!

I've never managed to get the stored procedure debugger to work despite a
few attempts but the manual swears that debugging of UDFs *is*
possible; see
my other thread from a couple of days ago. I just can't find out how
to get
it to work.

Anyway, I've been using File I/O techniques to debug. Your remarks were
quite helpful in reminding me what I *should* be doing in my UDFs ;-)

I'm going to go clean up those UDFs now ;-) I just have a couple small
ones
that are in the "sandbox" while I try to figure out exactly how to do
everything.

Rhino

"amurchis" <am******@ca.ib m.com> wrote in message
news:42******** @news3.prserv.n et...
I don't believe there's a way to debug a JAVA UDF in DB2... procedures,
yes. I believe that support is in development, though I can't say when
it will be released. There is a chance the Stored Procedure Debugger
MIGHT work for JAVA UDFs similar to how to works for JAVA procedures,
but I doubt it and I'm unfamiliar with that tool.

Do NOT use any System.exit() or similar calls inside a UDF or procedure
(collectively "routines") . This will bring down the process and may
cause unexpected errors/hangs in DB2 processing -- the DB2 documentation
specifically FORBIDS calling any type of exit() call inside a routine.
If your routine simply throws an exception that you do not handle (or
handle and then throw again), your client will receive a -4302 SQLCODE
error, which is probably the best behaviour to have in this case. The
stack traceback associated with the exception will be written to the
db2diag.log, and you should be able to determine from that stack
traceback what function you were executing when the exception occured.
In other words, DON'T catch any exceptions caused by writing to your
diagnostic file; just let DB2 handle it and it should write the
information you require to the db2diag.log automatically.

Cheers!

amurchis
Rhino wrote:

Since I haven't been able to find out yet how to get my Eclipse
debugger

to
step through my Java UDF code, I am adding old-style File I/O debugging

to
some of my UDFs. I'm not sure of the best way to design this though and

am
looking for some suggestions.

Since my class might contain several UDF methods, for instance, several
versions of the same basic UDF but with different signatures for

different
situations, e.g. count(needle, haystack), count(needle, haystack,

start),
and count(needle, haystack, start, finish), any or all of which might

want
to do logging, I've decided to create separate methods for each of the
following tasks: create/open the log file; write to the log file; close

the
log file.

Now, what should I do if one of the methods that works with the log

throws
an exception? I'm trying to figure out if it is best to display an
error
message and stacktrace on the console and then do a System.exit() or if
there is a better approach? I'm not clear on what behaviour DB2
wants in
this case but I'd like to give as clear and specific message as I can

about
the problem. In other words, I'd much rather see this when I run the

query:
UDF count(needle, haystack, 7) failed; log file could not be opened

due
to security violation

than this

UDF failed.

Could any of you Java UDF experts please share your experience on this
point?


Nov 12 '05 #5
Hmmm, maybe I was too hasty in taking those System.exit() calls out of my
UDFs....

I was doing a System.exit() within the catch logic for each of the three
methods that work with the log file; createFile(), writeFile() and
closeFile(). Here are all three methods:

static public BufferedWriter createFile(Stri ng path, String fileName) {

/* Define the buffered writer. */
BufferedWriter bufferedWriter = null;

try {
/*
* See if the output directory exists; if it doesn't, create it
and
* any needed parent directories.
*/
File outputPath = new File(path);
System.out.prin tln("outputPath =" + outputPath);
if (!outputPath.ex ists()) {
outputPath.mkdi rs();
}

/* See if the output file exists; if it doesn't, create it. */
outputFile = new File(outputPath , fileName);
System.out.prin tln("outputFile =" + outputFile);
if (!outputFile.ex ists()) {
outputFile.crea teNewFile();
}

/* Create the file, indicating that we will be appending to it.
*/
FileWriter fileWriter = new FileWriter(path + File.separator +
fileName, true);
bufferedWriter = new BufferedWriter( fileWriter);
} catch (SecurityExcept ion s_excp) {
System.out.prin tln("SecurityEx ception encountered. Message: " +
s_excp.getMessa ge());
s_excp.printSta ckTrace();
System.exit(16) ;
} catch (IOException io_excp) {
System.out.prin tln("IOExceptio n encountered. Message: " +
io_excp.getMess age());
io_excp.printSt ackTrace();
System.exit(16) ;
}

return (bufferedWriter );
}
static public void writeToFile(Buf feredWriter outputFile, String
oneLine) {

try {
outputFile.writ e(oneLine);
outputFile.newL ine();
}
catch (IOException io_excp) {
System.out.prin tln("IOExceptio n encountered while writing line '" +
oneLine +
"' to file " + outputFile + ".\nMessage : " + io_excp);
io_excp.printSt ackTrace();
System.exit(16) ;
}

}
static public void closeFile(Buffe redWriter outputFile) {

try {
outputFile.flus h();
outputFile.clos e();
}
catch (IOException io_excp) {
System.err.prin tln("IOExceptio n encountered while closing file " +
outputFile + ".\nMessage : " + io_excp);
io_excp.printSt ackTrace();
System.exit(16) ;
}
}

I deliberately specified the path to the log file as being on drive Z: of my
Windows XP machine - I don't have a drive Z: - and ran the code exactly as
you see here to see how it would respond to the error. Strangely enough, it
got all the way through the createFile() method without a hiccup but crashed
on a NullPointerExce ption in the writeFile() method; the stacktrace was
written to db2diag.log. I got an SQL4302 in the first statement that tried
to invoke the UDF. I got SQL4301 Reason Code 4 on each subsequent invocation
of the function.

When I followed your advice and removed the System.exit() calls from the
catch logic of each method, I got an SQL0440N (No such function) at each
invocation of the function. That is nonsense because I had just finished
generating the function again and got green lights on every step. Nothing
was written to db2diag.log either.

I like the behaviour of the function a LOT better when the System.exit(16)
was in each catch block!

Do you have any idea how to this is working? I'm baffled by why the
createFile() method is working and that bothers me; it should have failed.
But aside from that, I'm getting behaviour I can live with when I leave the
System.exit() in the catch blocks. The behaviour when I omit them is not
tolerable to me because it is very misleading.

Mind you, I'd prefer different behaviour altogether if I could figure out
how to get it: I'd like to get a specific message that says something like
"I/O Error in function foo(): Couldn't open log file because Drive Z: does
not exist." But If I can't get that, I'll take SQL4302 with a stacktrace in
db2diag.log over a bogus SQL0440N any time ;-)

Any ideas?

Rhino

"Rhino" <rh****@NOSPAM. sympatico.ca> wrote in message
news:wf******** *************@n ews20.bellgloba l.com...
Thanks for the reply!

I've never managed to get the stored procedure debugger to work despite a
few attempts but the manual swears that debugging of UDFs *is* possible; see my other thread from a couple of days ago. I just can't find out how to get it to work.

Anyway, I've been using File I/O techniques to debug. Your remarks were
quite helpful in reminding me what I *should* be doing in my UDFs ;-)

I'm going to go clean up those UDFs now ;-) I just have a couple small ones that are in the "sandbox" while I try to figure out exactly how to do
everything.

Rhino

"amurchis" <am******@ca.ib m.com> wrote in message
news:42******** @news3.prserv.n et...
I don't believe there's a way to debug a JAVA UDF in DB2... procedures,
yes. I believe that support is in development, though I can't say when
it will be released. There is a chance the Stored Procedure Debugger
MIGHT work for JAVA UDFs similar to how to works for JAVA procedures,
but I doubt it and I'm unfamiliar with that tool.

Do NOT use any System.exit() or similar calls inside a UDF or procedure
(collectively "routines") . This will bring down the process and may
cause unexpected errors/hangs in DB2 processing -- the DB2 documentation
specifically FORBIDS calling any type of exit() call inside a routine.
If your routine simply throws an exception that you do not handle (or
handle and then throw again), your client will receive a -4302 SQLCODE
error, which is probably the best behaviour to have in this case. The
stack traceback associated with the exception will be written to the
db2diag.log, and you should be able to determine from that stack
traceback what function you were executing when the exception occured.
In other words, DON'T catch any exceptions caused by writing to your
diagnostic file; just let DB2 handle it and it should write the
information you require to the db2diag.log automatically.

Cheers!

amurchis
Rhino wrote:
Since I haven't been able to find out yet how to get my Eclipse debugger
to
step through my Java UDF code, I am adding old-style File I/O
debugging
to some of my UDFs. I'm not sure of the best way to design this though
and
am looking for some suggestions.

Since my class might contain several UDF methods, for instance,
several versions of the same basic UDF but with different signatures for
different situations, e.g. count(needle, haystack), count(needle, haystack, start), and count(needle, haystack, start, finish), any or all of which might want to do logging, I've decided to create separate methods for each of the
following tasks: create/open the log file; write to the log file; close the
log file.

Now, what should I do if one of the methods that works with the log throws an exception? I'm trying to figure out if it is best to display an
error message and stacktrace on the console and then do a System.exit() or if there is a better approach? I'm not clear on what behaviour DB2 wants in this case but I'd like to give as clear and specific message as I can
about the problem. In other words, I'd much rather see this when I run the query:
UDF count(needle, haystack, 7) failed; log file could not be
opened due to security violation

than this

UDF failed.

Could any of you Java UDF experts please share your experience on this
point?


Nov 12 '05 #6
This is a followup to my own post in case anyone else is monitoring this
thread, either now or in the future.

I figured out why my createFile() method didn't crash. The createNewFile()
method *was* failing, causing an IOException. The IOException was handled by
my catch block but I didn't handle it correctly: I simply displayed a
message via System.out.prin tln() and displayed the stackTrace, neither of
which ever appeared because you can't do console I/O in a UDF. Then, since
the System.exit() was not there, the method ended, returning a null for the
BufferedWriter. Since I wasn't checking to ensure that I had a non-null
BufferedWriter, the code continued until it tried to write a line to the
non-existent log, at which point the runtime NullPointerExce ption occurred
in writeToFile(). That exception DID appear in db2diag.log.

I should have thought about this problem a bit more before asking anyone
else to explain it to me ;-)

---

I've also discovered that if I want to give the user a meaningful message
text, I can do so. In light of my new understanding of my createFile()
method's behaviour, I simply modified the code in my UDF a bit so that it
looked like this:

log = createFile(LOG_ PATH, LOG_FILE);
if (log==null) throw new IllegalArgument Exception("log file is
null");

As a result, when my log file couldn't be created because I'd specified a
non-existent Z drive, the SQL that invoked the function returned:

COM.ibm.db2.jdb c.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL4302N Java
stored procedure or user-defined function "RHINO.COUNTCHA R", specific name
"COUNTCHAR2 " aborted with an exception "log file is null". SQLSTATE=38501
In other words, I *can* make a meaningful message of my own choosing that
will appear if things go wrong in the UDF. This isn't a very GOOD message
yet but I know I can improve on this and get something very close to what I
had wanted.

Rhino

Nov 12 '05 #7
Rhino wrote:
I've also discovered that if I want to give the user a meaningful message
text, I can do so. In light of my new understanding of my createFile()
method's behaviour, I simply modified the code in my UDF a bit so that it
looked like this:

log = createFile(LOG_ PATH, LOG_FILE);
if (log==null) throw new IllegalArgument Exception("log file is
null");

As a result, when my log file couldn't be created because I'd specified a
non-existent Z drive, the SQL that invoked the function returned:

COM.ibm.db2.jdb c.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL4302N Java
stored procedure or user-defined function "RHINO.COUNTCHA R", specific name
"COUNTCHAR2 " aborted with an exception "log file is null". SQLSTATE=38501


Alternatively, you could also use the "setSQLmess age" and "setSQLstat em"
methods and set your own error message that way. You just have to be awary
that the message must not be longer than 70 bytes.

--
Knut Stolze
Information Integration
IBM Germany / University of Jena
Nov 12 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
1485
by: andy2O | last post by:
Hello comp.lang.py, Can you help me with ideas for the following (somewhat newbie) OO design question in Python? Note, I'm using psuedo-code, not actual Python for the examples! Background: ----------- I need to represent a small variety of mathematical constructs symbolically using Python classes.
0
1916
by: James Walters | last post by:
Hello, DB novice checking in here with a basic design question. I have a table called 'nms_apps' which stores information about all of our applications which we have developed/maintained for our client. One column which I would like to use is called 'used_by', which would store information about which business sections (Financial Management Branch, Human Resources Branch, etc.) use a particular application. Often
0
1368
by: Krist | last post by:
Hi All, I have a database design question, pls give me some help.. I want to define tables for salesman's sales target commission . The commission could be given per EITHER sales amount of : Group of Products OR Group of Brand. e.g : the data example : For one salesman_A : product_1, product_2, product_3 etc.. => sales = $100 - $200 =>
1
3272
by: Krist | last post by:
Hi All, There is some additional info I forget on this same topic I just posted. I have a database design question, pls give me some help.. I want to define tables for salesman's sales target commission . The commission could be given per EITHER sales amount of : Group of Products OR Group of Brand. e.g : the data example : For one salesman_A : product_1, product_2, product_3 etc.. => sales = $100 - $200 =>
1
2047
by: dixp | last post by:
I'm new to writing multithreaded apps and I have a design question. I have a winforms app and a class which has a method that does processing which is time intensive. I want the user to be able to kick off the process and continue to work in the appliaction while getting progress updates and the ability to cancel. The method that seems easiest to me is this: The class exposes certain events for progress. Start, ProgressUpdate, and...
3
1863
by: reageer | last post by:
Hi all, I have a design question: I have a bunch of users (name, address, zip, etc.). They are assigned a card with a specific id. The only thing unique is this card id, or probably the combination of all other user fields. So it's seductive to use the card id as the primary key. This card allows access to certain places and all access is logged.
7
308
by: Steve Long | last post by:
Hello, I have a design question that I'm hoping someone can chime in on. (I still using VS 2003 .NET 1.1 as our company has not upgraded XP to sp2 yet. duh I know, I know) I have a class I wrote (CAppInit) that I use for application configuration. It behaves similarly to Configuration.AppSettings with some extra functionality. This class is in an assembly (AppConfiguration) with another class. I would now like to extend the functionality...
29
2209
by: Brad Pears | last post by:
Here is a simple OO design question... I have a Contract class. The user can either save an existing contract or they start off fresh with a blank contract, fill in the data and then save a "new" contract. I have a method in my contract class called "Save" which is called like this... dim oContract as new Contract
9
1666
by: fjm | last post by:
Hey everyone, I lost my internet connection for about 5 months and finally got it back. This is one of the first places I came back to. I have to say that I had a heck of a time finding it because of the name change and facelift. :) Anyway, good to be back. I have a question that may be more of a design question. If this post doesn't belong here, I appoligize in advance, feel free to move it. I need to create a form that will be...
2
2530
by: RoaringChicken | last post by:
Hi. Vista Ultimate Access 2007 I'm developing an inventory database and have question on design. The database stores collection details. One item in the collection, one record. The design question is about showing related items. For example: I have a typewriter Model 1 I have a manual for typewriter Model 1 I have a manual for typewriter Model 2 but no typewriter model 2. What I would like is that when the record for typewriter...
0
8399
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8312
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
7337
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6169
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5632
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4159
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4318
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2732
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1959
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.