Avatar billede wzarlon Nybegynder
30. januar 2001 - 16:47 Der er 6 kommentarer og
1 løsning

Reducere udtræk

Hej eksperter!
Jeg laver flg udtræk fra en database, hvor jeg finder poster, hvis isChecked=1 så går den videre og sender en mail til vedkommende..
Jeg vil godt have det lavet om sådan at hvis der er flere poster med samme email, og de alle er isChecked=1, så skal den kun sende mailen 1 gang til vedkommende, og ikke flere gange som den gør nu..


dim body,email,link,rs_send
    set rs_send=server.createObject(\"adodb.recordset\")
    sql=\"select email,id,thread_id from mestbl\"
    sql=sql & \" where (thread_id=\"& tid & \" or id=\"& tid & \") and id<>\" & maxid &\"\"
    sql=sql & \"and forumid=\"&fid&\" and isChecked=1\"
    \'sql=sql & \"and forumid=\"&fid
    \'response.write sql\'***debug
    rs_send.open sql,conn
Avatar billede blazer Nybegynder
30. januar 2001 - 16:48 #1
sql=\"select top(1) email,id,thread_id from mestbl\"
Avatar billede wzarlon Nybegynder
30. januar 2001 - 16:51 #2
hvad gør den helt præcis?
Avatar billede wzarlon Nybegynder
30. januar 2001 - 17:03 #3
hvad er så muligheden for at få tilføjet til det overstående at når en bruger skriver et indlæg, og evt. markere sit indlæg som ischecked=1, så skal den kun sende til de andre i den thread som er lig ischecked=1.

Ligesom her på eksperten..Den sender kun mail når andre skriver i en thread, ikke når en selv gør det..
Det skal lige siges, at jeg kører ikke med en brugersystem.
Avatar billede wzarlon Nybegynder
30. januar 2001 - 17:09 #4
Desuden giver dit forslag flg. fejl:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

/common.asp, line 101
Avatar billede torbenrohde Nybegynder
30. januar 2001 - 17:10 #5
Hvad med at bruge DISCINT i dit SELECT statement, så du kun hiver en ud af hver post hvor emailen er ens.

Fx : mailSQL = SELECT DISTINCT email WHERE thread_id = \" & fid & \" AND........ osv.\"

(OT : prøv også at skrive alle sql keywords med stort og sæt lidt mellemrum ind hist og her :)
Avatar billede wzarlon Nybegynder
30. januar 2001 - 18:17 #6
hmmm, jeg har lige prøvet nogle forsøg med dit forslag torbenrohde, men jeg kan sku ikke få det til at virke..
Kan du sætte den sætning ind i min kode?
Avatar billede torbenrohde Nybegynder
30. januar 2001 - 22:49 #7
Kan (gider ;) ikke lige finde rundt i det du har skrevet med alle de id\'er.
Kan du ikke poste det du har prøvet. Hvad er det ved det der ikke virker ?

Fatter ikke helt hvordan du kan få gjort det udtræk så komplekst. Skal du ikke bare hive alle indlæg ud der har den pågældende tråd ID. Der kan vel ikke være to tråde med samme ID, eller ?

Burde kunne klares med :

minDatabaseForbindelse.Open
emailSQL = \"SELECT DISTINCT email WHERE thread_id = \" & traadID & \" AND vilhaveEmail = true\"
email = minDatabaseForbindelse.Execute(mailSQL)

Do While Not email.eof
  \'send mail her med email(\"email\") som adresse.
  email.MoveNext
Loop
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester