Обсуждение: how to execute a C program via trigger ?
Hi, I am using Red Hat 6.1 + PostgreSQL 7.0.3. All of
my
applications are developed by C and ECPG. I would
like to know how to execute a C program by Trigger,for
example:
1. I have a program my_c_program.c shuch as:
#include <stdio.h>
main()
{ printf("Hello World !\n");
}
2. I create a table foo by following command
CREATE TABLE foo(x int4);
3. create a trigger foo_trig :
create trigger foo_trig after update on foo for each row execute procedure sql_c(); 4. I don't know how to design
sql_c(),can anyone give a small plpsql program that can execute my_c_program?
regards, S.F. Lee
__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/
take a look at the contrib sections fti or fulltext index example
it takes you through it all
"S.F. Lee" wrote:
>
> Hi,
>
> I am using Red Hat 6.1 + PostgreSQL 7.0.3. All of
> my
> applications are developed by C and ECPG. I would
> like to know how to execute a C program by Trigger,for
> example:
>
> 1. I have a program my_c_program.c shuch as:
>
> #include <stdio.h>
> main()
> {
> printf("Hello World !\n");
> }
>
> 2. I create a table foo by following command
>
> CREATE TABLE foo
> (
> x int4
> );
>
> 3. create a trigger foo_trig :
>
> create trigger foo_trig after update
> on foo for each row execute procedure sql_c();
>
> 4. I don't know how to design sql_c(), can anyone
> give a small plpsql program that can execute
> my_c_program?
>
> regards, S.F. Lee
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Shopping - Thousands of Stores. Millions of Products.
> http://shopping.yahoo.com/
Thank for your hint, but I have some questions :
1. Do I have to compile the C program into a shared
object (*.so)? 2. Do I have to use SPI (SPI is too complicate to
me)?
My request is very simple. I have a program
(my_c_program) that I can execute it under shell by typing
(my_c_program). Basically my_c_program is not a function.
I want to fire a trigger after I update the field
(x) in table foo, and the trigger can run the
my_c_program. Is there an easy way to execute a
PROCESS
via trigger?
regards, S.F. Lee
--- clayton cottingham
<clayton@marketingchallenge.com> wrote:
> take a look at the contrib sections fti or fulltext
> index example
>
> it takes you through it all
>
>
>
> "S.F. Lee" wrote:
> >
> > Hi,
> >
> > I am using Red Hat 6.1 + PostgreSQL 7.0.3. All
> of
> > my
> > applications are developed by C and ECPG. I would
> > like to know how to execute a C program by
> Trigger,for
> > example:
> >
> > 1. I have a program my_c_program.c shuch as:
> >
> > #include <stdio.h>
> > main()
> > {
> > printf("Hello World !\n");
> > }
> >
> > 2. I create a table foo by following command
> >
> > CREATE TABLE foo
> > (
> > x int4
> > );
> >
> > 3. create a trigger foo_trig :
> >
> > create trigger foo_trig after update
> > on foo for each row execute procedure sql_c();
> >
> > 4. I don't know how to design sql_c(), can
> anyone
> > give a small plpsql program that can execute
> > my_c_program?
> >
> > regards, S.F. Lee
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Shopping - Thousands of Stores. Millions of
> Products.
> > http://shopping.yahoo.com/
__________________________________________________
Do You Yahoo!?
Yahoo! Shopping - Thousands of Stores. Millions of Products.
http://shopping.yahoo.com/
Hi there, I'm having some problems with the performance on queries including a join. for example: SELECT members_data.pwd FROM emails,members_data WHERE emails.email = 'koen@v3.com' AND emails.uin = members_data.uin; is a lot slower then extracting the join into 2 seperate queries like: SELECT emails.uin FROM emails WHERE lower(emails.email) = 'koen@v3.com'; --and use the result in the next query ($db_result) SELECT members_data.pwd FROM members_data WHERE members_data.uin = $db_result; Now the login routine is MUCH faster ;-) , but performance problems remain when the the result is more than 1 record (Unlike a unique emailaddress...) Is there anyone out there who has ideas how to write faster queries including tablejoins? I already tried Inner Join, Natural Join and Join On, wich didn't seem affect the performance in any way... Kind regards, Koen Antonissen koen@trilab.com www.trilab.com
Hi, Is any other SQL implicit cursor attribute in PL/plsql ?? when you say (in pl/plsql): select field into v_1 from atable where whatever; special variable FOUND can be used to tell return is null or not. this functions like SQL%FOUND or SQL%NOTFOUND in Oracle, however, when I do some DML(insert,delete,update), is there any other special variable can tell me howmany success. Like SQL%ROWCOUNT in Orcale?? And if there is an error such as : cannot insert since duplicate key on an unique index, is it possible to catch it?? Thanks. -- Jie LIANG Internet Products Inc. 10350 Science Center Drive Suite 100, San Diego, CA 92121 Office:(858)320-4873 jliang@ipinc.com www.ipinc.com
On Mon, 4 Dec 2000 18:20:29 -0800 (PST), S.F. Lee said: > Thank for your hint, but I have some questions : > > 1. Do I have to compile the C program into a shared > object (*.so)? yes > 2. Do I have to use SPI (SPI is too complicate to > me)? > > My request is very simple. I have a program > (my_c_program) > that I can execute it under shell by typing > (my_c_program). > Basically my_c_program is not a function. > im not sure anyone? > I want to fire a trigger after I update the field > (x) in table foo, and the trigger can run the > my_c_program. Is there an easy way to execute a > PROCESS > via trigger? > > regards, S.F. Lee > id say dont use C!! use pl/sql but if your trying to learn the prog of c functions youll have to get help elsewhere unfortunatley im not even newbie status on c!