It should work on SQL Bind. The biggest problem would be if someone opens the record for edit and doesn't close the form - you mind need to do some pretty tricky coding - such a scheduled job or something to check if a session is still active, and if the session isn't still active but the record is still locked by the session, then to unlock records being edited by that session. Or maybe allow records to be locked on a per-user bases, so the user can start editing - which locks the record - but then can't edit other records until they save and unlock their open locks. Does that make sense?
Assume your SQL Bind is for Update only (e.g. SQLType = Update, like the demonstrations)
Have SQL Bind call a stored procedure that retrieves the record for update - the same stored procedure could simply flag either a field in that record or a relational table to lock that stored procedure from being opened.
Then just make sure that your Form Completion event releases the flag....
sp_sqlbind1 'record_id', 'dnn_userid' e.g. sp_sqlbind1 '$(DSParam1)', '$(DNN_UID)'
And in the stored procedure (I wrote this in the fckeditor, so it may not be 100% acurate, was just writting it as an example):
create procedure sp_sqlbind1 (@record_id int, @dnn_userid int)
AS
BEGIN
declare @flag_status int, @user_locks int
select @user_locks = count(*) from tb_status where dnn_userid = @dnn_userid
if @user_locks = 1
BEGIN
select 'your notice to the user they have a record locked' as html_label1, '-- the field [user_has_locked_records] could correspond to a question event on the data springs form to disable submit - or even disable every field on the form except for the labels with links to the locked record.
RETURN
END
if @user_locks = 0
BEGIN
-- then get the current status of the current record being requested
select @flag_status = flag_status from tb_status where record_id = @record_id
-- status of 1 = actively being edited and cannot be edited
-- status of 0 = not being edited
if @flag_status = 0 -- not being edited, so we update the status that the record is going in to edit mode
BEGIN
update tb_status set flag_status = 1 where record_id = @record_id
-- Then your query to populate the form for edit, us the [flag_status] to correspond to a question with a question even that enables the fields or shows the Submit button or whatever that would allow the record to be edited and saved.
select 'no other records locked by you' as html_label1, field1, field2, field3, field4, @flag_status as [flag_status] from tb_mydatatable where record_id = @record_id
END
if @flag_status = 1 -- being edited,
BEGIN
select 'this record is locked' as html_label1, field1, field2, field3, field4, @flag_status as [flag_status] from tb_mydatatable where record_id = @record_id
-- and the above [flag_status] should then be used to disable the submit button or disable the fields so they can't be edited or whatever.
END
END
END