Jag vill använda mig av asp och för varje inlägg som jag har i en MySQL databas så vill jag flytta det till en annan tabell. Jag tror det hela ska fungera om du sätter Varför inte göra det med EN SQL sats? funkar det verkligen? Beror på vilken datbasmotor du har. Om den stödjer ANSI SQL, vilket de flesta gör, bör det funka. Borde inte SELECT taggen vara först eftersom du måste ju hämta inläggen innan du postar dom? Fixade det på egen hand.. Även om det inte är bästa sättet så:<code> Lär dig använda SQL. Vilket är mycket kraftfult bvad det gäller databehandling. Nu är jag inte världens bästa på SQL, men följande tror jag nog det borde vara i ditt fall... Som sakt så fick jag ett felmeddelande då jag gjorde så... Det står i en post lite längre upp i tråden... Du ska ju inte ha "VALUES" i SQL satsen för det är då det skiter sig... Jag har testat båda men jag antar att jag måste göra nåt fel.. Var vänlig att visa koden du försöker använda och felmeddelandet du får. Här hittar du den: Om du bygger SQLsatsen så här?Konvertera från en tabell till en annan?
Kan man skriva nåt i denna stil?
<code><%
SqlSelect = "SELECT * FROM tabell1 ORDER BY ID DESC"
Conn.Execute(SqlSelect)
Do until RecSet.EOF
SqlInsert = "INSERT INTO tabell2 VALUES ("& RecSet("id") &", '"& RecSet("text") &"')"
Conn.Execute(SqlInsert)
Recset.MoveNext
Loop
Recset.Close
%></code>
Man ska väl använda DESC för att dom ska postas i ordning i den nya tabellen?
Någon som vet om man kan göra nåt sånt eller om man ska använda en For Each satts?Sv: Konvertera från en tabell till en annan?
<code>
SqlSelect = "SELECT * FROM tabell1 ORDER BY ID DESC"
Set RecSet = Conn.Execute(SqlSelect)
</code>
i börjanSv: Konvertera från en tabell till en annan?
<code>
<%
strSQL = "INSERT INTO tabell2 (id, text)" & vbCrLf & _
"SELECT id, text" & vbCrLf & _
"FROM tabell1" & vbCrLf & _
"ORDER BY ID DESC"
Conn.Execute(SqlSelect)
%>
</code>Sv: Konvertera från en tabell till en annan?
* EDIT *
Då jag använde det så fick jag detta felmeddelande:
error '800a0cc1'
ADO Could not find the object in the collection corresponding to the name or ordinal reference requested by the collection.
/dev/convert.asp, line 3Sv: Konvertera från en tabell till en annan?
Jag märkte nu att jag stavat fel till variablen:
<code>
<%
strSQL = "INSERT INTO tabell2 (id, text)" & vbCrLf & _
"SELECT id, text" & vbCrLf & _
"FROM tabell1" & vbCrLf & _
"ORDER BY ID DESC"
Conn.Execute strSQL
%>
</code>
Skall det vara.Sv: Konvertera från en tabell till en annan?
* EDIT *
Har denna kod:<code>
<%
strSQL = "INSERT INTO tblguestbook VALUES (id, 'name', '', 'email', 'mezz', 'p_date', 'ip', 0, '')" & vbCrLf & _
"SELECT id,name,email,mezz,p_date,ip" & vbCrLf & _
"FROM guestbook" & vbCrLf & _
"ORDER BY id DESC"
Conn.Execute strSQL
Response.Write "<p>"& strSQL &"</p>"
%>
</code>
och får detta fel:<code>
ADODB.Connection.1 error '80004005'
SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT id,name,email,mezz,p_date,ip
FROM guestbook
ORDER BY id DESC' at line 2
/dev/convert.asp, line 8
</code>Sv: Konvertera från en tabell till en annan?
<%
strSQL1 = "SELECT *" & vbCrLf & _
"FROM guestbook" & vbCrLf & _
"ORDER BY id DESC"
Set RecSet = Conn.Execute(strSQL1)
Do until RecSet.EOF
strSQL2 = "INSERT INTO tblguestbook(id, strFirstName, strLastName, strEmail, strMsg, strDate, strIp, strMsgDeleted, strMsgDeletedIp)"
strSQL2 = strSQL2 & "Values("& RecSet("id") &",'"& RecSet("name") &"','','"& RecSet("email") &"','"& RecSet("mezz") &"','"& RecSet("p_date") &"','"& RecSet("ip") &"',0,'')"
Conn.Execute(strSQL2)
Recset.MoveNext
Loop
Recset.Close
%>
</code>Sv: Konvertera från en tabell till en annan?
Din fråger bör se ut på följande sätt:
<code>
<%
strSQL = "INSERT INTO tblguestbook VALUES (id, name, email, mezz, p_date, ip)" & vbCrLf & _
"SELECT id, name, email, mezz, p_date, ip" & vbCrLf & _
"FROM guestbook" & vbCrLf & _
"ORDER BY id DESC"
Conn.Execute strSQL
%>
</code>
Eller:
<code>
<%
strSQL = "INSERT INTO tblguestbook(id, strFirstName, strLastName, strEmail, strMsg, strDate, strIp, strMsgDeleted, strMsgDeletedIp)" & vbCrLf & _
"SELECT (id, name, '', email, mezz, p_date, ip, 0, ''"
"FROM guestbook" & vbCrLf & _
"ORDER BY id DESC"
Conn.Execute(strSQL2)
%>
</code>Sv: Konvertera från en tabell till en annan?
Dock kan du inte sätta in 0 som default, men det kan du ju ange i databasen som default så...
Det är mycket snabbare att göra ett SQL anrop som gör allt istället för att göra flera ;)
<code>
<%
strSQL = "INSERT INTO tblguestbook (id, name, email, mezz, p_date, ip)" & vbCrLf & _
"SELECT id, name, email, mezz, p_date, ip" & vbCrLf & _
"FROM guestbook" & vbCrLf & _
"ORDER BY id DESC"
Conn.Execute strSQL
Response.Write "<p>"& strSQL &"</p>"
%>
</code>
Mvh,
Thomas
EDIT:
Andreas hann visst före =)
Hade nog en mer komplett lösning skulle jag tro också ;)Sv: Konvertera från en tabell till en annan?
Sv: Konvertera från en tabell till en annan?
Får du felmeddelande med Andreas kod?
Mvh,
ThomasSv: Konvertera från en tabell till en annan?
Får iaf det felmeddelandet..Sv: Konvertera från en tabell till en annan?
Sv: Konvertera från en tabell till en annan?
<code>
<%
strSQL = "INSERT INTO tblguestbook VALUES (id, 'name', ' ', 'email', 'mezz', 'p_date', 'ip', 0, ' ')" & vbCrLf & _
"SELECT id,name,email,mezz,p_date,ip" & vbCrLf & _
"FROM guestbook" & vbCrLf & _
"ORDER BY id DESC"
Conn.Execute strSQL
Response.Write "<p>"& strSQL &"</p>"
%>
</code>
och får detta fel:<code>
ADODB.Connection.1 error '80004005'
SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT id,name,email,mezz,p_date,ip
FROM guestbook
ORDER BY id DESC' at line 2
/dev/convert.asp, line 8
</code>Sv: Konvertera från en tabell till en annan?
<code>
strSQL = "INSERT INTO tblguestbook VALUES (id, 'name', ' ', 'email', 'mezz', 'p_date', 'ip', 0, ' ') "
strSQL = strSQL & "SELECT id,name,email,mezz,p_date,ip "
strSQL = strSQL & "FROM guestbook "
strSQL = strSQL & "ORDER BY id DESC"
</code>
Jag fattar inte vad alla vbCrLf har med skapandet av sqlsatsen att göra.
(Observera att jag lagt till ett mellanslag innan sista " (dubbelfnutten) på varje rad)
Eller funkar denna (Accesskod) i MySQL?
<code>
INSERT INTO tblguestbook SELECT * FROM guestbook
</code>