Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP General > Deleting curent record

Reply
Thread Tools

Deleting curent record

 
 
xool
Guest
Posts: n/a
 
      09-11-2003
Hi all, can anyone tell me how to delete just the current record

if tempdate >= todaydate then
Set newMail=Server.CreateObject("CDONTS.newMail")
newMail.to = rs.fields("Email")
newMail.From = "(E-Mail Removed)"
newMail.Subject = "Wavestation Present Planner"
newMail.Body = "Dear " & rs.fields("qName") & vbcrlf & vbcrlf & "This is
your present planner reminder." & vbcrlf & vbcrlf & "It's " &
rs.fields("Period") & " before " & rs.fields("qpName") & "'s birthday
which falls on " & rs.fields("qDate") & "." & vbcrlf & vbcrlf & "Your
message: " & rs.fields("Message") & vbcrlf & vbcrlf & "Regards" & vbcrlf
& vbcrlf & "The Wavestation Team."
newMail.Send

conn.Execute "DELETE FROM Bmemo" <-------------------- ?????????
end if
rs.movenext


many thanks




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003


 
Reply With Quote
 
 
 
 
Aaron Bertrand - MVP
Guest
Posts: n/a
 
      09-11-2003
Is there a primary key in your table? If so, you can say

conn.execute("DELETE Bmemo WHERE [primaryKeyColumn] = " &
rs("primaryKeyColumn"))

Though I seriously question your methodology here... you're sending an
e-mail out within every iteration of your recordset loop? There are more
efficient ways to do this...





"xool" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi all, can anyone tell me how to delete just the current record
>
> if tempdate >= todaydate then
> Set newMail=Server.CreateObject("CDONTS.newMail")
> newMail.to = rs.fields("Email")
> newMail.From = "(E-Mail Removed)"
> newMail.Subject = "Wavestation Present Planner"
> newMail.Body = "Dear " & rs.fields("qName") & vbcrlf & vbcrlf & "This

is
> your present planner reminder." & vbcrlf & vbcrlf & "It's " &
> rs.fields("Period") & " before " & rs.fields("qpName") & "'s birthday
> which falls on " & rs.fields("qDate") & "." & vbcrlf & vbcrlf & "Your
> message: " & rs.fields("Message") & vbcrlf & vbcrlf & "Regards" &

vbcrlf
> & vbcrlf & "The Wavestation Team."
> newMail.Send
>
> conn.Execute "DELETE FROM Bmemo" <-------------------- ?????????
> end if
> rs.movenext
>
>
> many thanks
>
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003
>
>



 
Reply With Quote
 
 
 
 
Kris Eiben
Guest
Posts: n/a
 
      09-11-2003
Do you have an ID field, or a field or group of fields that define a
unique row? Get that out of the recordset, close it, and then delete
where that field = that value.

"xool" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi all, can anyone tell me how to delete just the current record
>
> if tempdate >= todaydate then
> Set newMail=Server.CreateObject("CDONTS.newMail")
> newMail.to = rs.fields("Email")
> newMail.From = "(E-Mail Removed)"
> newMail.Subject = "Wavestation Present Planner"
> newMail.Body = "Dear " & rs.fields("qName") & vbcrlf & vbcrlf &

"This is
> your present planner reminder." & vbcrlf & vbcrlf & "It's " &
> rs.fields("Period") & " before " & rs.fields("qpName") & "'s

birthday
> which falls on " & rs.fields("qDate") & "." & vbcrlf & vbcrlf & "Your
> message: " & rs.fields("Message") & vbcrlf & vbcrlf & "Regards" &

vbcrlf
> & vbcrlf & "The Wavestation Team."
> newMail.Send
>
> conn.Execute "DELETE FROM Bmemo" <-------------------- ?????????
> end if
> rs.movenext
>
>
> many thanks
>
>
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003
>
>



 
Reply With Quote
 
xool
Guest
Posts: n/a
 
      09-11-2003
Hi, no I don't have an ID field, any way of just deleting the current row?

"Kris Eiben" <(E-Mail Removed)> wrote in message
news:O$Bqt$(E-Mail Removed)...
> Do you have an ID field, or a field or group of fields that define a
> unique row? Get that out of the recordset, close it, and then delete
> where that field = that value.
>
> "xool" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > Hi all, can anyone tell me how to delete just the current record
> >
> > if tempdate >= todaydate then
> > Set newMail=Server.CreateObject("CDONTS.newMail")
> > newMail.to = rs.fields("Email")
> > newMail.From = "(E-Mail Removed)"
> > newMail.Subject = "Wavestation Present Planner"
> > newMail.Body = "Dear " & rs.fields("qName") & vbcrlf & vbcrlf &

> "This is
> > your present planner reminder." & vbcrlf & vbcrlf & "It's " &
> > rs.fields("Period") & " before " & rs.fields("qpName") & "'s

> birthday
> > which falls on " & rs.fields("qDate") & "." & vbcrlf & vbcrlf & "Your
> > message: " & rs.fields("Message") & vbcrlf & vbcrlf & "Regards" &

> vbcrlf
> > & vbcrlf & "The Wavestation Team."
> > newMail.Send
> >
> > conn.Execute "DELETE FROM Bmemo" <-------------------- ?????????
> > end if
> > rs.movenext
> >
> >
> > many thanks
> >
> >
> >
> >
> > ---
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003
> >
> >

>
>



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003


 
Reply With Quote
 
Aaron Bertrand - MVP
Guest
Posts: n/a
 
      09-11-2003
> Hi, no I don't have an ID field, any way of just deleting the current row?

If you don't have a way to uniquely identify a single row, no. This is one
of the reasons a primary key is an essential part of any sane table design.


 
Reply With Quote
 
Ray at
Guest
Posts: n/a
 
      09-11-2003
Eegs

How about instead of trying to do that, execute one DELETE query after your
loop is finished and use the same WHERE clause that you used to create the
recordset? Of course, if a new record is inserted during this loop, that'll
get deleted, but if you're using timestamps or anything, you could add the
current date and time onto your WHERE clause in DELETE where the time would
be set at the time your first recordset is created. Does this make sense?
Example:

(Assuming SQL)
Set rs = objADO.Execute("SELECT GETDATE(),
[Email],[qpName],[qDate],[Message],[Period] FROM [Bmemo] WHERE
[Something]='a value'")
sTime = rs.fields.item(0).value
'''your looping code here
rs.Close
Set rs = Nothing

objADO.Execute "DELETE FROM [Bmemo] WHERE [Something]='a value' AND
[DateAddedToTheDatabase]<='" & sTime & "'"

Ray at work



"xool" <(E-Mail Removed)> wrote in message
news:%(E-Mail Removed)...
> Hi, no I don't have an ID field, any way of just deleting the current row?
>
> "Kris Eiben" <(E-Mail Removed)> wrote in message
> news:O$Bqt$(E-Mail Removed)...
> > Do you have an ID field, or a field or group of fields that define a
> > unique row? Get that out of the recordset, close it, and then delete
> > where that field = that value.
> >
> > "xool" <(E-Mail Removed)> wrote in message
> > news:(E-Mail Removed)...
> > > Hi all, can anyone tell me how to delete just the current record
> > >
> > > if tempdate >= todaydate then
> > > Set newMail=Server.CreateObject("CDONTS.newMail")
> > > newMail.to = rs.fields("Email")
> > > newMail.From = "(E-Mail Removed)"
> > > newMail.Subject = "Wavestation Present Planner"
> > > newMail.Body = "Dear " & rs.fields("qName") & vbcrlf & vbcrlf &

> > "This is
> > > your present planner reminder." & vbcrlf & vbcrlf & "It's " &
> > > rs.fields("Period") & " before " & rs.fields("qpName") & "'s

> > birthday
> > > which falls on " & rs.fields("qDate") & "." & vbcrlf & vbcrlf & "Your
> > > message: " & rs.fields("Message") & vbcrlf & vbcrlf & "Regards" &

> > vbcrlf
> > > & vbcrlf & "The Wavestation Team."
> > > newMail.Send
> > >
> > > conn.Execute "DELETE FROM Bmemo" <-------------------- ?????????
> > > end if
> > > rs.movenext
> > >
> > >
> > > many thanks
> > >
> > >



 
Reply With Quote
 
Kris Eiben
Guest
Posts: n/a
 
      09-11-2003
No, afaik there is no way to delete a row as you loop through it,
somehow knowing which row you're on just because it's "current." (I'm
sure someone will correct me if I'm wrong -- Aaron, Ray, I'm looking in
your general direction.) You have to be able to somehow identify the
row from the data in the row.

So, you don't have an ID field. Surely, though, you have some kind of
check in place to keep users from entering duplicate data -- use the
fields you check there. If you don't have such a check in place, it's
time to put one in.

"xool" <(E-Mail Removed)> wrote in message
news:#(E-Mail Removed)...
> Hi, no I don't have an ID field, any way of just deleting the current

row?
>
> "Kris Eiben" <(E-Mail Removed)> wrote in message
> news:O$Bqt$(E-Mail Removed)...
> > Do you have an ID field, or a field or group of fields that define a
> > unique row? Get that out of the recordset, close it, and then

delete
> > where that field = that value.
> >
> > "xool" <(E-Mail Removed)> wrote in message
> > news:(E-Mail Removed)...
> > > Hi all, can anyone tell me how to delete just the current record
> > >
> > > if tempdate >= todaydate then
> > > Set newMail=Server.CreateObject("CDONTS.newMail")
> > > newMail.to = rs.fields("Email")
> > > newMail.From = "(E-Mail Removed)"
> > > newMail.Subject = "Wavestation Present Planner"
> > > newMail.Body = "Dear " & rs.fields("qName") & vbcrlf & vbcrlf

&
> > "This is
> > > your present planner reminder." & vbcrlf & vbcrlf & "It's " &
> > > rs.fields("Period") & " before " & rs.fields("qpName") & "'s

> > birthday
> > > which falls on " & rs.fields("qDate") & "." & vbcrlf & vbcrlf &

"Your
> > > message: " & rs.fields("Message") & vbcrlf & vbcrlf &

"Regards" &
> > vbcrlf
> > > & vbcrlf & "The Wavestation Team."
> > > newMail.Send
> > >
> > > conn.Execute "DELETE FROM Bmemo" <--------------------

?????????
> > > end if
> > > rs.movenext
> > >
> > >
> > > many thanks
> > >
> > >
> > >
> > >
> > > ---
> > > Outgoing mail is certified Virus Free.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003
> > >
> > >

> >
> >

>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.516 / Virus Database: 313 - Release Date: 02/09/2003
>
>



 
Reply With Quote
 
Aaron Bertrand - MVP
Guest
Posts: n/a
 
      09-11-2003
> No, afaik there is no way to delete a row as you loop through it,
> somehow knowing which row you're on just because it's "current." (I'm
> sure someone will correct me if I'm wrong -- Aaron, Ray, I'm looking in
> your general direction.)


Well, there might be a way to use rs.delete in this case, but I'm sure it is
RDBMS-implementation-specific. For example, in SQL Server, you should get
an "insufficient key information" error, because rs.delete translates to a
DELETE statement, and without a key, there is no way to know which row(s)
the delete statement applies to.

> So, you don't have an ID field. Surely, though, you have some kind of
> check in place to keep users from entering duplicate data -- use the
> fields you check there. If you don't have such a check in place, it's
> time to put one in.


Agreed. Or, if duplicates are okay, at least have a surrogate key (like
IDENTITY/AUTOINCREMENT) to feign sequence. Sometimes the only unique part
about a row might be, for example, the body of an e-mail message, in an
NTEXT column. You don't want to use that to identify a row.


 
Reply With Quote
 
xool
Guest
Posts: n/a
 
      09-11-2003
Ok, thanks all. I've decided to approach it a different way, just stuck with
a data type mismatch now if any one can help (see new thread)

many thanks


"Aaron Bertrand - MVP" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> > No, afaik there is no way to delete a row as you loop through it,
> > somehow knowing which row you're on just because it's "current." (I'm
> > sure someone will correct me if I'm wrong -- Aaron, Ray, I'm looking in
> > your general direction.)

>
> Well, there might be a way to use rs.delete in this case, but I'm sure it

is
> RDBMS-implementation-specific. For example, in SQL Server, you should get
> an "insufficient key information" error, because rs.delete translates to a
> DELETE statement, and without a key, there is no way to know which row(s)
> the delete statement applies to.
>
> > So, you don't have an ID field. Surely, though, you have some kind of
> > check in place to keep users from entering duplicate data -- use the
> > fields you check there. If you don't have such a check in place, it's
> > time to put one in.

>
> Agreed. Or, if duplicates are okay, at least have a surrogate key (like
> IDENTITY/AUTOINCREMENT) to feign sequence. Sometimes the only unique part
> about a row might be, for example, the body of an e-mail message, in an
> NTEXT column. You don't want to use that to identify a row.
>
>



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.516 / Virus Database: 313 - Release Date: 01/09/2003


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Extension to highlight curent tab needed !!!!! Home Theatre Guy Firefox 9 10-12-2006 04:47 PM
valid, but is for a machine type other than the curent machine. =?Utf-8?B?UHJpbnRlbXBz?= Windows 64bit 3 11-05-2005 04:21 PM
Finding PIX 501 curent number of Licenses Used Kirk Goins Cisco 1 01-23-2004 07:10 PM
Is a B.E. curent tudent eligible? gagandeepbajaj@hotmail.com MCSD 14 01-05-2004 07:16 PM



Advertisments