webForumDet fria alternativet

MySQL - En djungel?

ASP

40 svar · 1 652 visningar · startad av oskars · sida 2 av 3

Frågan, av oskars

Hej på er! Dimma och grejer på morgonen nu för tiden och man märker att man inte är helt på G i kroppen när man känner att halsen reagerar när man pratar på jobbet... usch, jobbigt. Hur som helst... Jag försöker gå över till MySQL från Access... ooooh yes! Kände mig riktigt odödlig där ett tag. "Kul" tyckte jag... och sen "Ojdå, det verkar ju jättelätt!"... och sen "Ajdå, så lätt var d

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#21
  1. Skriv ut den färdiga SQL-frågan, vi vet inte vad dina variabler innehåller.
  2. Formatera den färdiga SQL-frågan så den går att läsa i inlägget.
  3. Måste tydligen postas igen: http://www.webforum.nu/showthread.php?t=142490

mvh

Medlem sedan nov. 20051 317 inlägg
#22
  1. Hur skriver jag ut den färdiga SQL-frågan?
  2. Okej, jag testar igen... Redigerade mitt ovanstående inlägg...
  3. =/
Medlem sedan juni 200032 967 inlägg
#23
  1. Response.write SQL

Om man inte läser SQL-frågan såsom databasmotorn tolkar den är betydligt svårare (ibland omöjligt) att veta vad som är fel, eftersom man inte känner till innehållet i alla variabler. Jag gissar på att en eller flera variabler som används som tal i SQL-frågan (dvs utan apostrofer) saknar värde.

Medlem sedan nov. 20051 317 inlägg
#24

Exakt! Den klagar sådär nrä jag inte fyller i ALLA fälten... fattar inte varför den måste ha ett värde när jag inet angett "Not Null" i databasen..

Response.write SQL funkar ju inte... eftersom jag får felmeddelandet så ser jag ju inte frågan... :r

Medlem sedan juni 200032 967 inlägg
#25

Du ska ju skriva ut SQL-frågan istället för att exekvera den.

- - - -

Det spelar ingen roll att du tillåter NULL, SQL-frågan måste ändå vara syntaxmässigt korrekt. Skall du ha med ett fält i din UPDATE, får du inte utelämna värde helt och hållet. Skall du ha null, då får du ange NULL i din SQL-fråga.

Medlem sedan nov. 20051 317 inlägg
#26

Underbart!

UPDATE Adresser2006 SET 

GS = 0, 

KOrder = 1, 
Orderdatum = '2006-09-21 10:04:59', 
Ordernotering = 'Hej!' 
Avbetalning = '300', 
Losen = 'Fritt', 
Betvillkor = '300', 
Frakt = '127', 
Levtid = '1-2veckor', 
Produkt1 = 'Produkt1', 
Antal1 = D46, 
Storlek1 = '1',
Pris1 = 3250, 
Produkt2 = 'Produkt2', 
Antal2 = D14, 
Storlek2 = '1', 
Pris2 = 3250, 
Produkt3 = 'Produkt3', 
Antal3 = 50, 
Storlek3 = '1', 
Pris3 = 3250, 
Produkt4 = 'Produkt4', 
Antal4 = 66, 
Storlek4 = '1', 
Pris4 = 3250, 
Produkt5 = 'Produkt5', 
Antal5 = 52, 
Storlek5 = '2', 
Pris5 = 1247, 
Produkt6 = 'Produkt6', 
Antal6 = 46, 
Storlek6 = '5', 
Pris6 = 2200, 
Foretag = 'Företag' 
WHERE ID = 10

Så där ser det ut när jag försöker skicka...

Medlem sedan juni 200032 967 inlägg
#27

Du saknar apostrofer runt dina antalsvärden, som innehåller typ D46. Vad gör D:na där?

Medlem sedan nov. 20051 317 inlägg
#28

Damstorlek... alltså D46.. :) whooops.. blir hopplös nästan.. frågorna blir så långa att det lääätt blir fel.. ska söka igenom det där! Där lärde jag mig en bra grej, det där med att skriva ut frågan! TACK! :) :D

- - - - -

Ska jag ta bort &" från alla Request.Form?

Medlem sedan juni 200032 967 inlägg
#29

Men.

Du har ju stoppat värdena i antalsfälten. Då ska de väl inte vara där, utan hör mer hemma i storleksfälten? Det är antal1 och antal2 som innehåller dessa "felaktiga" värden.

I övrigt känns det som att datamodellen är rätt obra, men det kan vi ta en annan gång. :)

Medlem sedan nov. 20051 317 inlägg
#30

:r Du menar att det är många fält? tänkte nog att den frågan skulle komma.. men jag tror väl att jag behöver så många fält för det...va vet jag. :OO Försöker iaf! :l

Medlem sedan juni 200032 967 inlägg
#31

Jag menar att de fälten inte riktigt hör hemma där. Vad händer om man vill beställa fler än fem produkter?

Produkterna i beställningen bör lagras i en egen tabell med en relation till själva huvudtabellen.

Försöker iaf!

Det är väl bra! :)
Utan att försöka lär man sig inget, och utan att göra fel lär man sig inget. Alla är nybörjare någon gång. :)

mvh

Medlem sedan nov. 20051 317 inlägg
#32

Fast grejen är att kunden inte kommer köpa fler än 5st beställningar ! Det är det fina :D

- - - - - <- har lärt mig dina avskiljarstreck nu, hehe

Men sjuttsingen! När man Inte fyller i alla produktrader och skickar några tomma så får jag samma felmeddelande...
den försöker med: Storlek2 = '', Pris2 = , Produkt3 = '', Antal3 = , Storlek3 = '',
varför får jag itne skicka dessa tomma? Har detta med tomsträngkonkatering att göra?

(fan va du är grym som orkar svara asså)

Medlem sedan juni 200032 967 inlägg
#33

varför får jag itne skicka dessa tomma?

Det beror på att enligt SQL-syntax måste du skriva fältnamn = värde. Skall du använda NULL, då måste du skicka NULL i SQL-frågan.

Ex:

UPDATE tabell SET fält1 = 1, fält2 = NULL WHERE id = 4711

Exempel på hur du kan bygga upp det i ASP-koden:

If request.form("antal1") = "" then
     sAntal1 = "NULL"
else
     sAntal1 = request.form("antal1")
end if

Använd sedan variabeln istället för request.form("antal1") när du bygger upp SQL-frågan.

- - - - -

Tomsträngskonkatenering har endast att göra med onödigheten att lägga till ingenting på slutet av saker och ting med &"".

mvh

Medlem sedan nov. 20051 317 inlägg
#34

Ojdå, så jag måste skapa en massa If-satser då också? :) Ser inte logiken i det.. Har ju ett annat formulär där jag kan skicka tomma fält :(

EDIT: Fast just det.. jag skickar ju inte tomma fält tror jag inte.. utan i dom fälten som är "Tomma" där... är egentligen value="<%=RecSet("Namn")%> t.ex..från databasen.. coh då är dmo ju egentligen inte tomma.. medans det hrä orderformuläret inte innehåller någotn data från databasen innan... fattar du?

Detta borde väl lösas med att sätta value

Medlem sedan juni 200032 967 inlägg
#35

Du kan skicka tomma värden i SQL-frågor, om det är värden som omsluts av apostrofer, dvs text / varchar, strängvärden. I ditt andra formulär kan du inte skicka tomma fält om det är fält av taltyp.

Medlem sedan nov. 20051 317 inlägg
#36

Nu löste jag problemet genom att ange value="0" på alla textfälten som bara ska innehålla tal så att dom står som 0 som standard... Det blev enklare än att ha massa If-satser! Så nu verkar det fungera perfekt!

Hur känner du egentligen? Sitter du vid datorn, röd i ansiktet och frustrerad, och spottar på mig? :D

Medlem sedan juni 200032 967 inlägg
#37

oskars skrev:

Hur känner du egentligen? Sitter du vid datorn, röd i ansiktet och frustrerad, och spottar på mig? :D

Hehe!

Nej, jag sitter och är glad och nöjd eftersom du både lär dig saker, och uppskattar hjälpen. Det är så mycket roligare att hjälpa till när det uppskattas. :)

mvh

Medlem sedan nov. 20051 317 inlägg
#38

Kul! :) Ja du anar inte hur glad jag är att jag får sån hjälp asså.

Jag är ny vid MySQL som sagt, det här systemet som jag håller på med nu, som jag haft problem med, det fungerade tidigare perfekt med Access... men nu ska det bli till MySQL! Revolution!

:)

Medlem sedan nov. 20051 317 inlägg
#39

Hej!

Hur gör man egentligen en korrekt RecordCount med MySQL? Det jag använde förut (RecSet.RecordCount) fungerar inte längre för mig... jag har sökt på google och har fått fram olika förslag på funktioner, men jag har inte fått något att fungera.

Hoppas att kanske någon av er har ett konkret kodförslag!

Mvh
Oskar

Medlem sedan mars 20041 505 inlägg
#40

Anledningen till att du inte kan använda RecordCount är att du säkert använder adUseServer som CursorLocation för din databaskoppling, och då fungerar inte den egenskapen. Du måste använda adUseClient istället.
Testa att sätta CursorLocation=3 på ditt databasobjekt innan du öppnar det.

Detta låter säkert onödigt rörigt. Det finns en bra sida hos MySQL som förklarar det ganska bra:
http://dev.mysql.com/tech-resources/articles/vb-cursors-and-locks.html

267 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)