I am having problem changing my database queries from MS Access to MS SQL 2005. Can someone please help me with the following ASP if-else-end if statements:
if IsDate(objRecordSet("ExpDa
te")) then
expDate = "'" & objRecordSet("ExpDate") & "'"
else
expDate = "null"
end if
if IsDate(objRecordSet("Publi
shedDate")
) then
pubDate = "'" & objRecordSet("PublishedDat
e") & "'"
else
pubDate = "null"
end if
In Ms Access inserting or updating ExpDate and PublishedDate recorsets work fine, but when the same code runs on MS SQLServer 2005 my dates are changed to American dates. For example it was:
MsAccess
ExpDate = 12/02/2009
PublishedDate = 12/08/2008
and now in MS SQLServer 2005 I get:
02/12/2009
08/12/2008
My SQL query is:
dbConn.Execute("Insert Into Files (Title, SectionId, UserId, Description, Comments, CheckOut, MajorVersion, MinorVersion, URL, DLCId, CreateDate, Message, BaseFileId, PreviousFileId, CheckOutDate, CurrentFile, CreatorId, LastPopBy, intLinks, extLinks, iLinkCount, eLinkCount) values ('" & Replace(objRecordSet("Titl
e"), "'", "''") & "'," & objRecordSet("SectionId") & "," & uId & ",'" & objRecordSet("Description"
) & "','" & cmt & "',1," & ver & ",0,'-', 1 ,GetDate()," & expDate & "," & pubDate & ",'" & Replace(objRecordSet("Mess
age"),"'",
"''") & "'," & bFileId & "," & objRecordSet("FileId") & ",GetDate(), 1," & objRecordSet("CreatorId") & "," & objRecordSet("LastPopBy") & ",'" & replace(objRecordSet("intL
inks"), "'", "") & "','" & replace(objRecordSet("extL
inks") , "'", "") & "'," & objRecordSet("iLinkCount")
& "," & objRecordSet("eLinkCount")
& ")")
set dbConn = server.createobject("ADODB
.Connectio
n")
dbConn.Open "Driver={SQL Native Client};Server=sqldatabase
;Database=
db_13;Uid=
db_13_dbo;
Pwd=passwo
rd;"
dbConn.Execute("Update Files Set CurrentFile = 0 where FileId = " & objRecordSet("FileId"))
set dbConn = server.createobject("ADODB
.Connectio
n")
dbConn.Open "Driver={SQL Native Client};Server=sqldatabase
;Database=
db_13;Uid=
db_13_dbo;
Pwd=passwo
rd;"
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3
set objNewFile = Server.CreateObject("Adodb
.RecordSet
")
objNewFile.CursorLocation = adUseClient
objNewFile.open "Select Max(FileId) as File from Files where BaseFileId = " & fid, dbConn, adOpenStatic, adLockOptimistic
if not objNewFile.eof then
newF = objNewFile("File")
end if
As you can see above, for some reason I have to open database connection (dbConn.Open) several times, otherwise I can't Select or Update my table data. The worst problem is when I try to create several queries in one if-else-end if statement it just wouldn't Select table data, for example:
set maxVer = server.createobject("ADODB
.recordset
")
set objRecordSet = server.createobject("ADODB
.recordset
")
set objTheFile = server.createobject("ADODB
.recordset
")
set objVerCnt = server.createobject("ADODB
.recordset
")
set objRecordSet = dbConn.Execute("Select * from Files where FileId = " & fid)
if not objRecordSet.eof then
if objRecordSet("BaseFileId")
= 0 then
qry = "Select Max(MajorVersion) from Files where FileId = " & fid & " or BaseFileId = " & fid
verQry = "Select Count(*) As versionCount from Files where (FileId = " & fid & " or BaseFileId = " & fid & ") and MajorVersion = " & ver
delVerQry = "Delete From Files Where (FileId = " & fid & " or BaseFileId = " & fid & ") and MajorVersion = (Select Min(MajorVersion) from Files where FileId = " & fid & " or BaseFileId = " & fid & ")"
verExist = "Select Count(*) As versionCount from Files where FileId = " & fid & " or BaseFileId = " & fid
else
qry = "Select Max(MajorVersion) from Files where FileId = " & fid & " or BaseFileId = " & objRecordSet("BaseFileId")
verQry = "Select Count(*) As versionCount from Files where ( FileId = " & fid & " or BaseFileId = " & objRecordSet("BaseFileId")
& ") and MajorVersion = " & ver
delVerQry = "Delete From Files Where (FileId = " & fid & " or BaseFileId = " & objRecordSet("BaseFileId")
& "or (FileId = " & objRecordSet("BaseFileId")
& " and BaseFileId = 0)) and MajorVersion = (Select Min(MajorVersion) from Files where FileId = " & fid & " or BaseFileId = " & objRecordSet("BaseFileId")
& " or (FileId = " & objRecordSet("BaseFileId")
& " and BaseFileId = 0))"
verExist = "Select Count(*) As versionCount from Files where FileId = " & fid & " or BaseFileId = " & objRecordSet("BaseFileId")
end if
Any pointers on how can I solve this issue would be much appreciated?
Thank you sooooo much.
Svjetlana