Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Fel i sSQL vid INSERT

Postades av 2002-10-01 13:04:24 - Benni Svensson, i forum sql-server/msde, Tråden har 15 Kommentarer och lästs av 797 personer

Vad jag vill göra, är att flytta över en person ifrån ett loggnummer till ett annat.
LoggNr är en nyckel(tal), och för sorteringen så är det viktigt att kunna flytta ifrån ett loggnr till ett annat.
jag försöker så här:
<code>
sSql = "INSERT INTO t_PersonData
( Förnamn,Efternamn, PersonNr,Adress,
PostNr,Bostadsort,TelefonNummer,Mobil) "

sSql = sSql & "Value('" & Me![Förnamn] & "',
'" & Me![Efternamn] & "',
'" & Me![PersonNr] & "',
'" & Me![Adress] & "',
'" & Me![PostNr] & "',
'" & Me![Bostadsort] & "',
'" & Me![TelefonNummer] & "',
'" & Me![Mobil] & "' WHERE t_PersonData.LoggNr = " & strLoggNr & ")"
'MsgBox sSql
db.Execute sSql
</code>
När jag kolla sSQL-strängen, så ser den riktig ut, men jag får ett error
SYNTAXFEL i Insert Into uttrycket.

Vad gör jag för fel?


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-01 13:13:08 - Rolf Jangård

Testa med values.


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-01 13:17:32 - Rolf Jangård

Vänta nu lite. Jag var för het på gröten.
Antingen gör man en insert eller en update!
Ska du uppdatera ett nr sker det med update where.
En insert sker utan where!

sSql = "INSERT INTO t_PersonData
( Förnamn,Efternamn, PersonNr,Adress, PostNr,Bostadsort,TelefonNummer,Mobil) "
sSql = sSql & "Values('" & Me![Förnamn] & "',
" & Me![Efternamn] & "',
" & Me![PersonNr] & "',
" & Me![Adress] & "',
" & Me![PostNr] & "',
" & Me![Bostadsort] & "',
" & Me![TelefonNummer] & "',
" & Me![Mobil] ")"
MsgBox sSql
Alternativt:
sSql = "update t_persondata set nr=" & nyttnr & " where nr=" & gammaltnr


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-01 13:28:14 - Benni Svensson

Jo, det var det första som jag försökte med, men den ville inte uppdatera.

<code>
sSql = "UPDATE t_PersonData
SET t_PersonData.Förnamn = '" & Me![Förnamn] & "', t_PersonData.Efternamn = '" & Me![Efternamn] & "', t_PersonData.PersonNr = '" & Me![PersonNr] & "',
t_PersonData.Adress = '" & Me![Adress] & "',
t_PersonData.PostNr = '" & Me![PostNr] & "',
t_PersonData.Bostadsort = '" & Me![Bostadsort] & "', t_PersonData.TelefonNummer = '" & Me![TelefonNummer] & "', t_PersonData.Mobil = '" & Me![Mobil] & "'"
sSql = sSql & "WHERE (((t_PersonData.LoggNr)= " & strLoggNr & "))"
</code>
Det händer ingenting, och jag får heller inget felmedelande.

Vad det gäller är följande.
LoggNr ligger i följande serie
101 till 150
401 till 499
501 till 599

Anledning till detta är olika avdelninga som man tillhör, och det är viktigt att smidigt kunna växla till ett nytt loggNr.


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-01 15:56:27 - Christoffer Hedgate

> När jag kolla sSQL-strängen, så ser den riktig ut, men jag får ett error
SYNTAXFEL i Insert Into uttrycket.

Ja, den kanske ser riktig ut, men det är den som Perlemo påpekade inte. Skriv ut din SQL-sats, testa den i Query Analyzer, fungerar den där ska den fungera från din applikation. När du frågar här så klipp in den SQL-sats du kör, VB-koden som skapar den, så är det mycket enklare att se vad som är fel.


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-01 18:28:19 - Benni Svensson

Det som är problemet är att det är i en Accessdatabas som jag har på jobbet. Där har jag inte tillgång till QA.
Jag försökte att ta ut en del(och omarbeta) i från en fråga i Access, men som sakt, den misslyckas helt.


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 09:15:03 - Christoffer Hedgate

OK, men som sagt, skriv ut SQL-satsen och klistra in den i ett inlägg här så kan vi se om den är korrekt.


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 10:07:54 - Benni Svensson

Tack Cristoffer.
Så här ser SQL:en ut, utskriven...

UPDATE t_PersonData SET t_PersonData.Förnamn = 'Joakim', t_PersonData.Efternamn = 'von Anka', t_PersonData.PersonNr = '990909-1234', t_PersonData.Adress = '', t_PersonData.PostNr = '', t_PersonData.Bostadsort = '', t_PersonData.TelefonNummer = '', t_PersonData.Mobil = ''WHERE t_PersonData.LoggNr= 401

Kan du se några fel??
En tanke, jag får inga fel, men jag har byggt databasen som så att personnummer inte får vara dubbletter, kan det vara det som spöka??
Testade precis och fann att det inte var det som spökade.(jag lade personnummer i en variabel, tog bort det gammla personnummret, men icke)



Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 12:18:59 - Ulf Magnusson

Hej.

En liten idé..

Är du säker på att LoggNr= 401 existerar ?

Du säger att du inte får några fel och att uppdatera noll rader är inget fel.
Om du däremot bryter mot några constraints, i ditt fall personnummer,
borde du fått ett fel.

Kommer inte ihåg i huvudet, men har för mig att connection objektet
innhåller ett attribut som visar hur många rader senaste DML satsen,
tex update, berörde.

/Uffe


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 12:52:22 - Benni Svensson

Jo loggNr 401 finns.
400 till 499
500 till 599

Fortfarande inga error, och ingen on error resume next.
Han vägrar helt enkelt.
Hur skall jag annars kunna flytta ifrån ett loggnr till ett annat, någon idé?


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 13:23:23 - Rolf Jangård

Du kan kanske testa med att vrida runt queryn lite.

Villkora på personnumret i stället för det andra numret.

update tabell set nr=nyttnr where persnr=var_persnr

Labba med att hitta den post du försöker uppdatera för att garantera att den finns.

Allt detta kan du köra i access med hjälp av frågor.
Du kan också (precis som föreg skribent påpekar) lägga på en long
på execute-metoden.

conn.execute sql, along
msgbox along & " poster påverkades av " & sql
för att se hur många poster som påverkats av sql-en.


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 14:27:48 - Christoffer Hedgate

Jag ser inget fel i den sql-satsen, möjligen att Access kan bråka (SQL Server gör det ej) för att du inte har ett mellanslag mellan '' och WHERE. Dvs, testa nedanstående. Om det inte fungerar har jag ingen aning, måste bara säga som tidigare sa, är du helt säker att det redan finns en rad med loggnr = 401?


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 14:35:45 - Benni Svensson

När jag gjorde som du beskrev, så fick jag inte ens 0 till svar. Den utelämnade helt enkelt någon siffra.
Det går inte att labba med någon annan post heller. Så här är det uppbyggt:

LoggNr Förnamn Efternamn Personnummer osv.

Alla loggnumren är utskrivna, men det är inte sagt att det finns någon person på alla loggnummren.
I detta fallet så skulle jag flytta all information som finns på loggnummer 101 till loggnummer 401.
Loggnummer är nyckel och indexerat.
En tanke vore det lättare att ändra bara loggnummren??


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-02 15:01:06 - Rolf Jangård

Hej igen.

Skum db-design som vi kan lämna därhän.

Du har ett personregister som innehåller ett nr. Denna tabell har du preppat med alla valida nr. En person som finns på ett nr ska kunna flyttas till ett annat nr. Personnr är unikt.

1. uppdatera bort personen från gammalt nr. Annars får du rimligtvis duplicate key på personnumret.

2. uppdatera in personen på nytt nr.

Sql:en ser rätt ut.



Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-03 11:46:29 - Benni Svensson

Att db-designen ser ut som den gör är:
På servern så är det mappat enligt loggnr. Därför så måste loggnr vara unikt. Man använder också loggnr för att logga in (plus pw).
Jag har försökt enligt ovan, men när jag använder
Set db = DBEngine(0)(0)
och SQL:en
Då händer absolut ingenting, och inga felmedelande.
DÄRIMOT....
Om jag ändrar lite granna,
<code>
sSql = "UPDATE t_PersonData
SET t_PersonData.Förnamn = "",
t_PersonData.Efternamn = "",
t_PersonData.PersonNr = "",
t_PersonData.Adress = "",
t_PersonData.PostNr = "",
t_PersonData.Bostadsort = "",
t_PersonData.TelefonNummer = "",
t_PersonData.Mobil = """
sSql = sSql & " WHERE t_PersonData.LoggNr= " & strLoggNrOld & ""

If Err.Number = 0 Then
DoCmd.RunSQL (sSql)
Else
MsgBox Err.Number & " " & Err.Description
End If

strLoggNr = InputBox("Skriv in det LoggNr som du vill byta det nuvarande LogNr till", "Resurshusetet i Växjö")

sSql = "UPDATE t_PersonData
SET t_PersonData.Förnamn = '" & Me![Förnamn] & "',
t_PersonData.Efternamn = '" & Me![Efternamn] & "',
t_PersonData.PersonNr = '" & strPersonnummer & "',
t_PersonData.Adress = '" & Me![Adress] & "',
t_PersonData.PostNr = '" & Me![PostNr] & "',
t_PersonData.Bostadsort = '" & Me![Bostadsort] & "',
t_PersonData.TelefonNummer = '" & Me![TelefonNummer] & "',
t_PersonData.Mobil = '" & Me![Mobil] & "'"
sSql = sSql & " WHERE t_PersonData.LoggNr= " & strLoggNr & ""

If Err.Number = 0 Then
DoCmd.RunSQL (sSql)
Else
MsgBox Err.Number & " " & Err.Description
End If
</code>
Då händer ialla fall lite. Tanken var ju att SQL:en skulle tömma alla rutorna(ta bort posterna) men den ersätts med ", t_PersonData.Adress = "
Ja, alla fälten får liknande text.

Därefter så får jag en medelandeskylt:

Det går inte att uppdatera alla posterna i uppdateringsfrågan.
0 fält uppdaterades inte pg av typkonverteringsfel,1 post pg av nyckelfel, 0 pg av verifieringsfel.

Det känns nästan som om jag har kört in i väggen...


Svara

Sv: Fel i sSQL vid INSERT

Postades av 2002-10-03 14:55:51 - Rolf Jangård

Hej igen.

1. Verifiera din sql innan du exekverar den.
Skriv till debugfönstret eller poppa en msgbox eller nåt.

2. Du bygger upp en sql sedan testar du på fel. Om inget fel exekverar
du och går vidare. Testa i stället att exekvera och sedan köra feltest.

3. Om delar av sql-satser landar i dina (bundna) textboxar är sql-en
fel. I den sql du visar i det senaste inlägget blandar du samman
dubbel- och singelfnuttar.

4. 'Handveva' uppdateringen. Nita in den färdiga SQL-en ditt program och
exekvera.

5. Att gå in i väggen är i dessa dagar ett slitet uttryck. Det du lider av är
lätt sql-ios ;).

Lycka till!

sSql = "UPDATE t_PersonData SET " & _
"t_PersonData.Förnamn =''," & _
"t_PersonData.Efternamn = ''," & _
"t_PersonData.PersonNr = ''," & _
"t_PersonData.Adress = ''," & _
"t_PersonData.PostNr = ''," & _
"t_PersonData.Bostadsort = ''," & _
"t_PersonData.TelefonNummer = ''," & _
"t_PersonData.Mobil = '' " & _
"WHERE t_PersonData.LoggNr= '" & strLoggNrOld & "'"

DoCmd.RunSQL (sSql)

If Err.Number <> 0 Then

MsgBox Err.Number & " " & Err.Description


else

strLoggNr = InputBox("Skriv in det LoggNr som du vill byta det nuvarande LogNr till", "Resurshusetet i Växjö")

sSql = "UPDATE t_PersonData
SET t_PersonData.Förnamn = '" & Me![Förnamn] & "', " & _
"t_PersonData.Efternamn = '" & Me![Efternamn] & "', " & _
"t_PersonData.PersonNr = '" & strPersonnummer & "', " & _
"t_PersonData.Adress = '" & Me![Adress] & "', " & _
"t_PersonData.PostNr = '" & Me![PostNr] & "'," & _
"t_PersonData.Bostadsort = '" & Me![Bostadsort] & "'," & _
"t_PersonData.TelefonNummer = '" & Me![TelefonNummer] & "'," & _
"t_PersonData.Mobil = '" & Me![Mobil] & "'," & _
" WHERE t_PersonData.LoggNr= '" & strLoggNr & "'"

DoCmd.RunSQL (sSql)
If Err.Number <> 0 Then
MsgBox Err.Number & " " & Err.Description
End
end if


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 752
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies