IALweb Homepage
Forum Home Forum Home > Programmazione > Programmazione > ASP-ASP.NET
  New Posts New Posts RSS Feed - insert into multiplo: miglioramento codice
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

insert into multiplo: miglioramento codice

 Post Reply Post Reply
Author
Message
il_betto View Drop Down
Veterano
Veterano
Avatar

Joined: 13/Giu/2011
Status: Offline
Points: 3332
Post Options Post Options   Thanks (0) Thanks(0)   Quote il_betto Quote  Post ReplyReply Direct Link To This Post Topic: insert into multiplo: miglioramento codice
    Posted: 19/Giu/2014 at 09:48
Ciao a Tutti,

in questi giorni ho avuto il seguente problema:

all' esecuzione della pagina asp il record della tabella t_mrg va ad inserirsi nella tabella t_feed se e solo se in essa non esiste gia';

il record della tabella t_mrg deve essere pero' ripetuto 2 volte uguale nella tabella t_feed; l' unica differenza tra i 2 records che vengono generati nella tabella t_feed sta nel fatto che i campi della tabella t_feed: FB01 e FB02 devono popolarsi automaticamente dei valori 'Yes' in modo alternato.

Quindi, se il record della tabella t_mrg e' il numero 2014073 e non esiste nella tabella t_feed,

all' esecuzione della pagina asp il cui codice e' di sotto riportato,

si generano 2 records uguali nella tabella t_feed che presentano l' unica differenza nei campi FB01 e FB02 nel sugente modo:

Numero  FB01    FB02

2014073   Yes

2014073            Yes


<%@ Language=VBScript %>
<%
Option Explicit
Dim cn3, i, sql9
i = 1
'
Set cn3 = Server.CreateObject("ADODB.Connection")
cn3.ConnectionString = "DSN=9_feed.dsn"
cn3.Open
sql9 = "INSERT INTO t_feed (Numero, Nome, FB01, FB02) " & _
"SELECT t_mrg.Numero, First(t_mrg.Nome) AS Nome, First(IIf(IsNull([t_feed.FB02]),'Yes',[t_feed.FB01])) AS FB01, First(t_feed.FB02) AS FB02 " & _
"FROM t_mrg, t_feed " & _
"GROUP BY t_mrg.Numero " & _
"HAVING ((t_mrg.Numero=2014073) AND t_mrg.Numero Not In (SELECT t_feed.Numero FROM t_feed))"
cn3.Execute sql9
sql9 = "INSERT INTO t_feed (Numero, Nome, FB01, FB02) " & _
"SELECT TOP 1 t_mrg.Numero, First(t_mrg.Nome) AS Nome, t_feed.FB01 AS FB01, 'Yes' AS FB02 " & _
"FROM t_mrg, t_feed " & _
"GROUP BY t_mrg.Numero, t_feed.FB01 " & _
"HAVING (t_mrg.Numero=2014073) AND (SELECT Count(*) AS Conteggio FROM t_feed WHERE Numero=2014073)=" & i & ""
cn3.Execute sql9
cn3.Close
'
Set cn3 = Nothing
%>


Il codice postato funziona bene; solo che ho scritto questo post perche' chiedevo se c' era un modo migliore di scriverlo ...

Nel senso:

  • mi piacerebbe che anziche' eseguire 2 volte sql9 si potessero unire i due INSERT INTO in un unico blocco di codice
  • non mi piace essere ricorso al SELECT TOP 1

Grazie mille in anticipo !!!

Edited by il_betto - 19/Giu/2014 at 09:49
Back to Top
Sponsored Links


Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,047 seconds.