Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Gdzie się błąd kryje...??
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005
Gdzie się błąd kryje...??

Komunikat błędu podczas otwierania strony asp w explorerze:

Typ błędu:
Microsoft VBScript - błąd kompilacji (0x800A0409)
Brak zakończenia stałej znakowej
/northDB/formulaire.asp, line 20, column 614
sql = "SELECT [publikacje].[tytul], [publikacje].[rok], [publikacje].[informacje], [typ].[nazwa] AS typ, [autorzy].[nazwisko] & ' ' & [autorzy].[imie] AS autor FROM typ INNER JOIN (publikacje INNER JOIN (autorzy INNER JOIN autorzy_publikacje ON [autorzy].[ID_Autor]=[autorzy_publikacje].[F_Autor]) ON [publikacje].[ID_Publikacja]=[autorzy_publikacje].[F_Publikacja]) ON [typ].[ID_Typ]=[publikacje].[F_Typ] WHERE ((([publikacje].[rok])='" & Request.QueryString("[forms]![Formulaire]![rok]" )& "') And (([autorzy].[nazwisko] & ' ' & [autorzy].[imie])='" & Request.QueryString("[forms]![Formulaire]![autor]" )& "'))


12-04-2005 11:56
Pokaż profil Antek  Wyślij email do Antek   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005
Poprawka

Wiem gdzie znajduje się błąd, ale nie wiem jak to powinno wyglądać poprawnie...

15-04-2005 10:13
Pokaż profil Antek  Wyślij email do Antek   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Ponieważ nie bardzo mam jak to zamodelować, powiedz gdzie jest ten błąd, czy tkwi on tutaj:
[forms]![Formulaire]![rok] ?


_____________________________________________
Karolina

15-04-2005 11:13
Pokaż profil karolinavb  Wyślij email do karolinavb   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Tak to jest w przedostatniej linice.

16-04-2005 18:34
Pokaż profil Antek  Wyślij email do Antek   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Antku

Napisałes "tak", rozumiem, że tutaj tkwi błąd:

[forms]![Formulaire]![rok]

([publikacje].[rok])='" & Request.QueryString("[forms]![Formulaire]![rok]" )& .....

więc teraz moje pytanie brzmi:
jakiego typu jest pole ([publikacje].[rok] ?

bo wyrażenie Twoje moim zdaniem napisane jest tak jakby u Ciebie pole rok było typu tekstwego. Jeśli jest to pole numeryczne wyrażenie

Request.QueryString("[forms]![Formulaire]![rok]" )

powinno być bez znaków apostrofu (nie poprzedzone i nie zakończone)

czyli    '

na początku i na końcu

na końcu tego całego wyrażenia brakuje też  cudzysłowu, ale to wiesz ?

[Post edytowany dnia 16-04-2005 19:39 przez karolinavb]


_____________________________________________
Karolina

16-04-2005 19:34
Pokaż profil karolinavb  Wyślij email do karolinavb   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Droga Karolinko
Dziękuję ogromnie za zainteresowanie moim problemem i udzielone i rady Co do typu pola [publikacje].[rok] to jest ono liczbowe i dokonałem zmian tak jak mi napisałaś wyżej. Dodałem również cudzysłów na samym końcu liniki. Niestety pojawił się kolejny błąd...

Typ błędu:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Sterownik ODBC Microsoft Access ] Zbędny ) w wyrażeniu kwerendy '((([publikacje].[rok])=) And (([autorzy].[nazwisko] & ' ' & [autorzy].[imie])=''))'.
/northDB/formulaire.asp, line 22

Rozumiem, że jest o jeden zbędny nawias ) za dużo i w komunikacie go widzę. Jednak w źródle już go nie dostrzegam i nie widzę żadnego zbędnego nawiasu...

((([publikacje].[rok])=" & Request.QueryString("[forms]![Formulaire]![rok]" ) & " ) And (([autorzy].[nazwisko] & ' ' & [autorzy].[imie])='" & Request.QueryString("[forms]![Formulaire]![autor]" )& "'))

18-04-2005 10:07
Pokaż profil Antek  Wyślij email do Antek   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Antku

Tak się wydarzy jeśli wyrażenie:

Request.QueryString("[forms]![Formulaire]![rok]

będzie puste wówszas w stringu są puste znaki zamiast liczby i nawias
i chyba analogicznie

Request.QueryString("[forms]![Formulaire]![autor]

tylko zostają 2 apostrofy i potem zostają 2 nawiasy.

Należy wyeliminować taki przypadek informując użytkownika, że te pola są puste przed wykonaniem zapytania.

Takie jest moje zdanie i chyba zwykła praktyka po wypełnieniu formularza nie tylko na www.
Jeśli natomiast użytkownik może pozotawić te pola puste należy opracować różne wersje zapytania, osobne, bądź wbudować klauzule IF.
Przy czym ta 1-sza wersja wydaje się bardziej prosta przy braku wprawy i nie tylko wtedy, zwłaszcza gdy string SQL jest długi.

[Post edytowany dnia 18-04-2005 10:32 przez karolinavb]


_____________________________________________
Karolina

18-04-2005 10:25
Pokaż profil karolinavb  Wyślij email do karolinavb   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Karolino
Zrobiłem formularz, w którym uzytkownik nie może pozostawić pustego pola, chociaż jest puste na początku. Niestety orłem jeszcze nie jestem jeżeli chodzi o te sprawy i nie moge znaleźć tego miejsca gdzie pozostawić dwa apostrofy i dwa nawiasy...

Pozdrawiam mi życze miłego dzionka

18-04-2005 11:05
Pokaż profil Antek  Wyślij email do Antek   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Antku
Nawet jeśli zrobiłeś ten formularz poprawnie to wyraźnie moim zdaniem widać, że

Request.QueryString("[forms]![Formulaire]![rok] - jest puste

oraz
Request.QueryString("[forms]![Formulaire]![autor]" ) - jest puste

Być może jest jakaś inna przyczyna,że te wyrażnia w momencie wykonywania kwerendy są puste bo moim zdaniem jeśli te wyrażenia nie są puste liczba nawiasów jest dobra, może się mylę, ale tu:

=) jest brak liczby roku !!!!!!!!!!!

a tutaj 

='')) sa 2 apostrofy, a nie cudzysłów więc brak jest stringu autor ?
O ile to ostatnie powoduje, że jest poszukiwane puste pole, o tyle brak roku jest przyczyną tego nawiasu za znakiem równości.


((([publikacje].[rok])=) And (([autorzy].[nazwisko] & ' ' & [autorzy].[imie])=''))

Może przed wejściem do Kwerendy wyświetl sobie treść ostateczną tej kwerendy jak zwykły string i zobacz wartości tych 2-ch wyrażeń.

[Post edytowany dnia 18-04-2005 11:41 przez karolinavb]


_____________________________________________
Karolina

18-04-2005 11:31
Pokaż profil karolinavb  Wyślij email do karolinavb   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Karolino
A może byłaby taka możliwość żeby przesłać Ci moją bazkę i rzuciłabyś okiem dlaczego tak się dzieje i co zrobić, aby działało to poprawnie w asp?

18-04-2005 11:48
Pokaż profil Antek  Wyślij email do Antek   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Przesłać możesz oczywiście, zawsze chętnie ogladam cudze prace, lecz nie obiecuję, że znajdę czas wcześniej niż w sobotę, chyba, że uda mi się to poprawić "w pierwszym podejściu".
No i mam Office XP.

[Post edytowany dnia 18-04-2005 12:21 przez karolinavb]


_____________________________________________
Karolina

18-04-2005 12:17
Pokaż profil karolinavb  Wyślij email do karolinavb   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Karolina to bardzo solidna firma, na którą można liczyć!! Bardzo mi pomogła i cierpliwie wytłumaczyła pewne sprawy.

20-04-2005 18:46
Pokaż profil Antek  Wyślij email do Antek   
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Karolina to bardzo solidna firma, na którą można liczyć!! Bardzo mi pomogła i cierpliwie wytłumaczyła pewne sprawy.

20-04-2005 18:47
Pokaż profil Antek  Wyślij email do Antek   
Wszystkich odpowiedzi: 12 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1