472,985 Members | 2,894 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,985 software developers and data experts.

storing SMALL large objects to postgres with C# (.NET ODBC layer)

NM
Hello,

I've got a problem inserting binary objects into the postgres database.
I have binary objects (e.g. images or smth else) of any size which I
want to insert into the database. Funny is it works for files larger
than 8000 Bytes. If a file is less than 1000 Bytes I get the following
message:
Error message:
--invalid input syntax for type oid: "\074\077......";

If a file is between 1000 and 8000 Bytes my program just crashes
silently. This is a really strange behaviour since the binary files
vary in sizes (big and small onces). It works with C++ using the
SQLPutData class provided by the ODBC layer. In C# I don't have
anything like that (right?).

So, now the question is: Is that an error in my program, my way of
accessing the database, of creating the insert command, of the C# .NET
code, or the postgreSQL ODBC driver I use? I doubt it is the last one,
since it works with C++. Can anyone help me please??

Technical output (source code, logs, etc):
--------------------------------------------------------------------------

I use:
- WinXP SP2
- VS 2005
- Database version: 8.2.0
- PostgreSQL ANSI Driver Version 8.02.02.00
- I create a ODBC DSN entry
- standard settings
- bytea as LO unchecked
- unchecked LF<conversion

Here is my C# code to write the binary object:

public int InsertBLOB(byte[] blob) {
OdbcDataAdapter adapter = null;
try {
adapter = new OdbcDataAdapter();
adapter.InsertCommand = new OdbcCommand();
adapter.InsertCommand.CommandText = "INSERT INTO
binary_object (object) VALUES (?)";
adapter.InsertCommand.Connection = new
OdbcConnection(this._connection.ConnectionString); // my DSN
connection string

// here the binary parameter is defined
adapter.InsertCommand.Parameters.Add("blob",
OdbcType.VarBinary);
adapter.InsertCommand.Parameters["blob"].Direction =
ParameterDirection.Input;
adapter.InsertCommand.Parameters["blob"].Value = blob;
} catch (Exception e) {
LogError(e);
}

try {
adapter.InsertCommand.Connection.Open();
int rowsAffected =
adapter.InsertCommand.ExecuteNonQuery();
adapter.InsertCommand.Connection.Close();
} catch (Exception e) {
LogError(e);
}
}
Here is my database log from the insert statement from an insert when
the file is larger than 8000 Bytes:
--obviously the LO with the oid 121156 was created successfully
2007-01-11 17:44:35 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: set DateStyle to 'ISO'
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: set geqo to 'OFF'
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: set extra_float_digits to 2
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: select oid, typbasetype
from pg_type where typname = 'lo'
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: select pg_client_encoding()
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: BEGIN
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: fastpath function call: "lo_creat"
(OID 957)
2007-01-11 17:44:41 LOCATION: HandleFunctionRequest, fastpath.c:333
2007-01-11 17:44:41 LOG: 00000: fastpath function call: "lo_open" (OID
952)
2007-01-11 17:44:41 LOCATION: HandleFunctionRequest, fastpath.c:333
2007-01-11 17:44:41 LOG: 00000: fastpath function call: "lo_lseek"
(OID 956)
2007-01-11 17:44:41 LOCATION: HandleFunctionRequest, fastpath.c:333
2007-01-11 17:44:41 LOG: 00000: fastpath function call: "lowrite" (OID
955)
2007-01-11 17:44:41 LOCATION: HandleFunctionRequest, fastpath.c:333
2007-01-11 17:44:41 LOG: 00000: fastpath function call: "lo_close"
(OID 953)
2007-01-11 17:44:41 LOCATION: HandleFunctionRequest, fastpath.c:333
2007-01-11 17:44:41 LOG: 00000: statement: COMMIT
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:41 LOG: 00000: statement: INSERT INTO binary_object
(object) VALUES ('121156'::lo)
2007-01-11 17:44:41 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: set DateStyle to 'ISO'
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: set geqo to 'OFF'
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: set extra_float_digits to 2
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: select oid, typbasetype
from pg_type where typname = 'lo'
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: select pg_client_encoding()
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: set DateStyle to 'ISO'
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: set geqo to 'OFF'
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: set extra_float_digits to 2
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: select oid, typbasetype
from pg_type where typname = 'lo'
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 17:44:48 LOG: 00000: statement: select pg_client_encoding()
2007-01-11 17:44:48 LOCATION: exec_simple_query, postgres.c:811
..............
This is a database log file when the XML file is small (here a test
with a few "1" values as bytes:
--it seems here to switch to insert a bytea object, which of course
is not the case.

2007-01-11 18:14:17 LOG: 00000: statement: set DateStyle to 'ISO'
2007-01-11 18:14:17 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 18:14:17 LOG: 00000: statement: set geqo to 'OFF'
2007-01-11 18:14:17 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 18:14:17 LOG: 00000: statement: set extra_float_digits to 2
2007-01-11 18:14:17 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 18:14:17 LOG: 00000: statement: select oid, typbasetype
from pg_type where typname = 'lo'
2007-01-11 18:14:17 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 18:14:17 LOG: 00000: statement: select pg_client_encoding()
2007-01-11 18:14:17 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 18:14:17 WARNING: 22P06: nonstandard use of \\ in a string
literal at character 44
2007-01-11 18:14:17 HINT: Use the escape string syntax for
backslashes, e.g., E'\\'.
2007-01-11 18:14:17 LOCATION: check_string_escape_warning, scan.l:932
2007-01-11 18:14:17 LOG: 00000: statement: INSERT INTO binary_object
(object) VALUES
('\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001')
2007-01-11 18:14:17 LOCATION: exec_simple_query, postgres.c:811
2007-01-11 18:14:17 ERROR: 22P02: invalid input syntax for type oid:
"\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001\001\001\001\001\001\001\001\001\001\ 001\001\001\001\001\001\001\001\001\001\001\001\00 1\001\001\001"
2007-01-11 18:14:17 LOCATION: oidin_subr, oid.c:64
2007-01-11 18:14:17 STATEMENT: INSERT INTO binary_object (object)
VALUES
('\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001\\001\\0 01\\001\\001\\001\\001\\001\\001\\001\\001')
My table binary_object looks like this: ......................

CREATE TABLE binary_object
(
id serial NOT NULL,
"object" lo NOT NULL,
CONSTRAINT binary_object_pkey PRIMARY KEY (id)
)
WITHOUT OIDS;
ALTER TABLE binary_object OWNER TO postgresadmin;
GRANT ALL ON TABLE binary_object TO postgresadmin;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE binary_object TO machine;

--------------------------------------------------------------------------

Thanks for any answers!!
NM

Jan 11 '07 #1
0 2636

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

Similar topics

3
by: WinstonSmith | last post by:
Hello everyone, I got a problem about GC when creating large fields (some MB), set reference to null and call GC.Collect. Not all virtual mem is released. Situation improved in .net 1.1 but not...
11
by: CSN | last post by:
Is it possible to iterate over an array in plpgsql? Something like: function insert_stuff (rel_ids int) .... foreach rel_ids as id insert into table (rel_id, val) values (id, 5);
1
by: Dirk Försterling | last post by:
Hi, sorry for reposting, but it seems my message just hit nothing but air. If I posted to the wrong list or did something else wrong with the message, please let me know. I really want to...
4
by: David Helgason | last post by:
What: I'm having trouble finding out how to find the current PGconn connection inside a C function. Looking through the documentation didn't give this up. Could anyone suggest where to look? I...
0
by: David Helgason | last post by:
What: I'm having trouble finding out how to find the current PGconn connection inside a C function. Looking through the documentation didn't give this up. Could anyone suggest where to look? ...
0
by: David Helgason | last post by:
I think those best practices threads are a treat to follow (might even consider archiving some of them in a sort of best-practices faq), so here's one more. In coding an game asset server I want...
2
by: zhicheng wang | last post by:
hi, the man page says pg_dump cannot dump "large objects". can some one help me on what does this realy mean? how large is large? if we have some icons can we still use pg_dumpall to backup the...
11
by: Benny | last post by:
I just wanted to throw the discussion out there on what the best practice people feel is for using large objects in a foreach loop. For example if you are reusing an Image object in a loop like...
14
by: JoeC | last post by:
I have been writing games and I also read about good programming techniques. I tend to create large objects that do lots of things. A good example I have is a unit object. The object controls...
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...
0
by: Aliciasmith | last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
0
tracyyun
by: tracyyun | last post by:
Hello everyone, I have a question and would like some advice on network connectivity. I have one computer connected to my router via WiFi, but I have two other computers that I want to be able to...
3
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
1
by: Teri B | last post by:
Hi, I have created a sub-form Roles. In my course form the user selects the roles assigned to the course. 0ne-to-many. One course many roles. Then I created a report based on the Course form and...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 1 Nov 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM) Please note that the UK and Europe revert to winter time on...
3
by: nia12 | last post by:
Hi there, I am very new to Access so apologies if any of this is obvious/not clear. I am creating a data collection tool for health care employees to complete. It consists of a number of...
0
NeoPa
by: NeoPa | last post by:
Introduction For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
0
isladogs
by: isladogs | last post by:
The next online meeting of the Access Europe User Group will be on Wednesday 6 Dec 2023 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, Mike...

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.