Another question is, if the c/c++ function takes 10 seconds to finish, when
another process queries the exact entry being modified, what will be
returned? Maybe the old data? Is it possible to lock this entry so that
either the new value (when check passes) or old value (when check fails)
will be returned AFTER the c function is done?

Thanks!



Igor Tandetnik wrote:
> 
> Simon Chen <simonche...@gmail.com> wrote:
>> What I want is:
>>
>> - whenever I insert/update/delete a table entry, the specified c/c++
>> function is called
>> - if the function returns true, the db action can proceed; otherwise,
>> the db action should be rolled-back.
> 
> create trigger triggerName before insert on tableName
>   when not myfunction()
> begin
>   select RAISE(ROLLBACK, 'error message');
> end;
> 
> -- or
> 
> create trigger triggerName before insert on tableName
> begin
>   select RAISE(ROLLBACK, 'error message')
>   where not myfunction();
> end;
> 
> Similarly for update and delete.
> 
> Igor Tandetnik 
> 
> 
> 
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> 
> 

-- 
View this message in context: 
http://www.nabble.com/how-to-call-c-c%2B%2B-function-in-trigger-tp22815938p22827535.html
Sent from the SQLite mailing list archive at Nabble.com.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to