Låter som något du lämpligtvis gör med en lagrad procedur om det nu är mssql du kör, den skulle väl i princip se ut såhär:
CREATE PROCEDURE [dbo].[spSaveValue] (@value as varchar(50)) AS
declare @var1 as varchar(50)
declare @var2 as varchar(50)
declare @var3 as varchar(50)
declare @var4 as varchar(50)
declare @id as varchar(50)
select top 1 @id=id, @var1=var1, @var2=var2, @var3=var3, @var4=var4 from test order by id desc
if @var1 is null begin
update test set var1=@value where id=@id
end else begin
if @var2 is null begin
update test set var2=@value where id=@id
end else begin
if @var3 is null begin
update test set var3=@value where id=@id
end else begin
if @var4 is null begin
update test set var4=@value where id=@id
end else begin
insert into test (var1) values (@value)
end
end
end
end
(om nu tabellen heter test och idkollumnen heter id)
Om du nu inte kör mssql kan du göra samma sak i asp, något i stil med:
sub saveValue(sValue)
sValue = replace(sValue, "'", "''")
set oRS = odb.execute("select top 1 id, var1,var2, var3,var4 from test order by id desc")
if isnull(ors("var1").value) then
odb.execute "update test set var1='" & sValue & "' where id=" & ors("id")
exit sub
end if
if isnull(ors("var2").value) then
odb.execute "update test set var2='" & sValue & "' where id=" & ors("id")
exit sub
end if
if isnull(ors("var3").value) then
odb.execute "update test set var3='" & sValue & "' where id=" & ors("id")
exit sub
end if
if isnull(ors("var4").value) then
odb.execute "update test set var4='" & sValue & "' where id=" & ors("id")
exit sub
end if
odb.execute "insert into test (var1) values ('" & sValue & "'")
end sub
----------
Hmms.. nu blev det säkert en jäkla massa rörig kod och ett långt meddelande, (sitter och skriver allt direkt i webbläsaren så jag garanterar inte att det funkar.. men nått i den stilen iaf)...