まず第一に、私はエンジニアではなく、仕事の制約の中で働いている単なるウェブデザイナーであることを知ってもらいたいです。Windows Server 2003 /SQL2000環境で実行されているASPクラシックで作成された多数のアプリケーションがあります。同社は、Windows Server2008R2とSQL2012を搭載した新しいサーバーを購入し、アプリケーションを新しいサーバーに移行するタスクを提供してくれました。私はこれに関する多くのマニュアルとドキュメントを数週間読んで読み、アプリの1つを除いてタスクを実行しました。このアプリは、調査に回答するためのインターフェースを作成、作成、インターフェースします。ログインページが機能するため、非常に奇妙です。ユーザー名とパスを入力して管理領域に入ると、データベースに保存されているオプションが問題なく表示されますが、アンケートに回答しようとすると、ブラウザから表示されます。これ:
Microsoft OLE DB ProviderforODBCドライバーエラー「80040e14」
[Microsoft] [ODBCSQLServerドライバー][SQLServer]「@errno」の近くの構文が正しくありません。
/SEL/Encuesta/preguntatodo_nuevo.asp、línea108
/SEL/Encuesta/preguntatodo_nuevo.asp、línea108で見つけたものは次のとおりです。
sSQL = "Update UsuariosClima set NumCuestContestados = NumCuestContestados+1 Where IDUsuario = " & IDUsuario
conn.Execute(sSQL)
この情報だけで私を助けるのは難しいことを私は知っているので、もっとデータが必要な場合は教えてください。私はあなたに私の仕事をしてほしくありません。誰かが私を正しい方向に導くことができれば、私は一人で続けます。本当にありがとう。
覚えておいてください:私はエジニアではありません。子供のように説明してください。
更新-UsuariosClimaのトリガー:
tD_Usuarios:
ALTER trigger tD_Usuarios on dbo.UsuariosClima for DELETE as
begin
declare @errno int,
@errmsg varchar(255)
if exists (
select * from deleted,AccesoCuestionarioClima
where
AccesoCuestionarioClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE "Usuarios" because "AccesoCuestionario" exists.'
goto error
end
if exists (
select * from deleted,AccesoClienteClima
where
AccesoClienteClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE "Usuarios" because "AccesoCliente" exists.'
goto error
end
if exists (
select * from deleted,PertenenciaClima
where
PertenenciaClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE "Usuarios" because "Pertenencia" exists.'
goto error
end
update RespuestaCuestionariosClima
set
RespuestaCuestionariosClima.IDUsuario = NULL
from RespuestaCuestionariosClima,deleted
where
RespuestaCuestionariosClima.IDUsuario = deleted.IDUsuario
return
error:
raiserror @errno @errmsg
rollback transaction
end
tU_Usuarios:
ALTER trigger tU_Usuarios on dbo.UsuariosClima for UPDATE as
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@insIDUsuario int,
@errno int,
@errmsg varchar(255)
select @numrows = @@rowcount
if
update(IDUsuario)
begin
if exists (
select * from deleted,AccesoCuestionarioClima
where
AccesoCuestionarioClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE "UsuariosClima" because "AccesoCuestionarioClima" exists.'
goto error
end
end
if
update(IDUsuario)
begin
if exists (
select * from deleted,AccesoClienteClima
where
AccesoClienteClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE "UsuariosClima" because "AccesoClienteClima" exists.'
goto error
end
end
if
update(IDUsuario)
begin
if exists (
select * from deleted,PertenenciaClima
where
PertenenciaClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE "UsuariosClima" because "PertenenciaClima" exists.'
goto error
end
end
if
update(IDUsuario)
begin
update RespuestaCuestionariosClima
set
RespuestaCuestionariosClima.IDUsuario = NULL
from RespuestaCuestionariosClima,deleted
where
RespuestaCuestionariosClima.IDUsuario = deleted.IDUsuario
end
return
error:
raiserror @errno @errmsg
rollback transaction
end