[SQL\VBScipt] Qoute Probleempje

Pagina: 1
Acties:

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Ik ben nu al een tijd aan het prutsen met de volgende query:

code:
1
2
3
4
SQL3 = "SELECT  Fax " &_
           "From CustomerAddress" &_
           "Where Fax <> " & """" & "" &_
           "AND CustID = """ & KlantID & """"


De query moet dus het faxnummmer geven van een bepaalde klant terwijl het faxnummer geen lege string mag zijn. Hoe krijg ik de qoutjes goed...

"He who thinks knows evertyhing, knows nothing" - Socrates


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Where NOT FAX = '' oid?

* gorgi_19 snapt er eigenlijk weinig van wat de TS nu eigenlijk wil... :?

En maak in je SQL string eens gebruik van Single quotes; stukken duidelijker.. :P

[ Voor 221% gewijzigd door gorgi_19 op 29-10-2003 10:01 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Zat er niet een verschil tussen NULL en '', misschien moet je daar ook nog ff naar kijken...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

FvKnijff schreef op 29 October 2003 @ 10:01:
[...]


Zat er niet een verschil tussen NULL en '', misschien moet je daar ook nog ff naar kijken...
Dat verschil is er; alleen een lege string is ''; als het 'niets is', dan is het Null.
Maar '' != Null

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
gorgi_19 schreef op 29 oktober 2003 @ 09:58:
Where NOT FAX = '' oid?

* gorgi_19 snapt er eigenlijk weinig van wat de TS nu eigenlijk wil... :?

En maak in je SQL string eens gebruik van Single quotes; stukken duidelijker.. :P
De waarde in FAX kan dus nooit NULL zijn. Als er niets staat, betekent dat dat er een lege string is ingevuld. Stel dat ik de FAXnummers van de betreffende klant wil waar het faxnummer niet A is (kan natuurlijk ook nooit, dus ik zou een resultaat moeten krijgen. Ik zou dan het volgende doen:
code:
1
2
3
4
SQL3 = "SELECT  Fax " &_
           "From CustomerAddress" &_
           "Where Fax <> ""A""" &_
           "AND CustID = """ & KlantID & """"

Maar dit werkt ook niet.

"He who thinks knows evertyhing, knows nothing" - Socrates


Verwijderd

code:
1
2
3
4
SQL3 = "SELECT  Fax " &_
           "From CustomerAddress " &_
           "Where Fax <> '' " &_
           "AND CustID = '" & KlantID & "'"


Ten 1e een spatie achter CustomerAddress. En volgens mij moet je in SQl enkele aanhalingstekens gebruiken.

[ Voor 44% gewijzigd door Verwijderd op 29-10-2003 10:15 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Waarbij het me trouwens niet gaat verbazen als hij gaat vallen over CustID = '" & KlantID & "'", aangezien dit me een numeriek veld lijkt en je dan geen single quotes mag gebruiken. (Ik geloof dat alleen MySQL dat slikte)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

gorgi_19 schreef op 29 October 2003 @ 10:15:
Waarbij het me trouwens niet gaat verbazen als hij gaat vallen over CustID = '" & KlantID & "'", aangezien dit me een numeriek veld lijkt en je dan geen single quotes mag gebruiken. (Ik geloof dat alleen MySQL dat slikte)
O ja natuurlijk. Tja, ik had gewoon zijn dubbele quotes door enkele vervangen. :P

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
gorgi_19 schreef op 29 October 2003 @ 10:15:
Waarbij het me trouwens niet gaat verbazen als hij gaat vallen over CustID = '" & KlantID & "'", aangezien dit me een numeriek veld lijkt en je dan geen single quotes mag gebruiken. (Ik geloof dat alleen MySQL dat slikte)
Ik heb nog een andere SQL query die het wel werkt. Deze is als volgt:
code:
1
2
3
SQL = " SELECT CustRelCode AS ID, Name AS Naam   " &_
          " FROM   CustomerRelation " &_
          " Where CustID = """ & KlantID & """"


Zeg het mij maar. Rotzooi is dat. VBScript (of een andere taal) i.c.m. bv SQL

"He who thinks knows evertyhing, knows nothing" - Socrates


Verwijderd

Wat voor type veld is dat CustId dan?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Kan zijn dat CustID niet een numeriek veld is. Daarnaast kan je altijd werken met parametrized queries.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

Denk inderdaad aan de mogeijkheid Null te gebruiken. En vergeet vooral de voordelen van parameterized queries niet, die nemen je een hoop werk uit handen...

offtopic:
Story of my life: gorgi_19 is me NET voor :p

[ Voor 18% gewijzigd door OZ-Gump op 29-10-2003 10:26 ]

My personal website


  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Verwijderd schreef op 29 October 2003 @ 10:24:
Wat voor type veld is dat CustId dan?
Char, net zoals het Fax veld

"He who thinks knows evertyhing, knows nothing" - Socrates


Verwijderd

MarkTheFOX schreef op 29 October 2003 @ 10:26:
Char, net zoals het Fax veld
Ah, vandaar dat quotes daar idd werken. :P

Oplossing met enkele ipv dubbel quotes al geprobeerd?

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
Verwijderd schreef op 29 October 2003 @ 10:29:
[...]


Ah, vandaar dat quotes daar idd werken. :P

Oplossing met enkele ipv dubbel quotes al geprobeerd?
Zoals het volgende:
code:
1
2
3
4
SQL3 = "SELECT Fax " &_
           "From CustomerAddress" &_
           "Where Fax <> " & "''" &_
           "AND CustID = """ & KlantID & """"

Dit werkt ook niet. Het nadeel van het werken met single qoutes is dat VBScript single qoutes als commentaar ziet.

"He who thinks knows evertyhing, knows nothing" - Socrates


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
code:
1
2
3
4
SQL3 = "SELECT  Fax " &_
           "From CustomerAddress " &_
           "Where Fax <> '' " &_
           "AND CustID = '" & KlantID & "';"


als ik je bovenstaande query nog eens goed doorneem dan zie ik dat er allemaal spaties missen, gebruik daarnaast ipv die "" eens gewoon '


en als reactie op je laatste post

vervang
code:
1
Where Fax <> " & "''" &_


nou eens gewoon door
code:
1
Where Fax <> '' " &_

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

MarkTheFOX schreef op 29 October 2003 @ 10:34:
[...]


Zoals het volgende:
code:
1
2
3
4
SQL3 = "SELECT Fax " &_
           "From CustomerAddress" &_
           "Where Fax <> " & "''" &_
           "AND CustID = """ & KlantID & """"

Dit werkt ook niet. Het nadeel van het werken met single qoutes is dat VBScript single qoutes als commentaar ziet.
Ik had boven aan al een oplossing gegeven zonder al die &-tekens, en overigens enkele quotes zijn GEEN commentaar als ze midden in een string staan!

code:
1
2
3
4
SQL3 = "SELECT Fax " &_
           "From CustomerAddress " &_
           "Where Fax <> '' " &_
           "AND CustID = '" & KlantID & "'"


En je vergeet spaties achter regels, waardoor je Query er uit komt te zien als volgt:
code:
1
Select FaxFrom CustomerAddressWhere Fax......etc.


De goeie antwoorden zijn volgens mij allang al gegeven.

  • Vozze
  • Registratie: December 2001
  • Laatst online: 20-08 22:02
FvKnijff schreef op 29 October 2003 @ 10:36:
code:
1
2
3
4
SQL3 = "SELECT  Fax " &_
           "From CustomerAddress " &_
           "Where Fax <> '' " &_
           "AND CustID = '" & KlantID & "';"


als ik je bovenstaande query nog eens goed doorneem dan zie ik dat er allemaal spaties missen, gebruik daarnaast ipv die "" eens gewoon '


en als reactie op je laatste post

vervang
code:
1
Where Fax <> " & "''" &_


nou eens gewoon door
code:
1
Where Fax <> '' " &_
Ja hoor! Dat is hem. Allemaal bedankt voor julie hulp.
Het kan zijn dat de query wel heeft gewerkt, maar het programma waar ik mee werk, is een beetje vaag. Als je een paar keer een foute query probeert uit te voeren en daarna een goede, dan werkt de goede alsnog niet. Je moet het programma dan opnieuw starten en dan werkt de goede ineens wel.

"He who thinks knows evertyhing, knows nothing" - Socrates

Pagina: 1