Just nu i M3-nätverket
Gå till innehåll

Robbac1

Medlem
  • Antal inlägg

    164
  • Gick med

  • Senaste besök

    Aldrig
  1. Robbac1

    SQL

    Jo Access borde klara det utan problem. Problemet är hos den som hanterar recordsetet, översätter frågan till den databashanterare som skall ha frågan. Om frågan går igenom utan problem, kan det i sin tur vara mottagande språk som inte klarar av att hantera det. Om du tex får två kolumner med samma namn i ett recordset i ASP får du ett felmeddelande först när du försöker accessa någon av kolumnerna med samma namn. Jag säger inte att det här som är problemet, eftersom jag inte har någon möjlighet att testa det. Men jag känner igen problematiken, och vad jag har gjort för att komma runt det. ____Robbac_____________________________________ The Truth Is Out there
  2. Robbac1

    SQL

    Tror mig se vad felet är i frågan SELECT s.sid, k.kid, g.sid FROM Student AS s, Kurs AS k, Godkaend AS g WHERE k.kid = g.kid AND s.sid = g.sid AND s.sid =1 Frågan i sig är helt korrekt, men det du får tillbaka i ditt recordset är två stycken kolumner som heter "sid" (s.sid och g.sid). Prova med att ändar till följande: SELECT s.sid as ssid, k.kid , g.sid as gsid FROM Student AS s, Kurs AS k, Godkaend AS g WHERE k.kid = g.kid AND s.sid = g.sid AND s.sid =1 Lycka till, ____Robbac_____________________________________ The Truth Is Out there
  3. Hej! Visst kan du fortfarande använda dig av conn.open men kopplingen till mySQL ser lite annorlunda ut än den till Access. Jag har själv min sida på b-one, och den här connectionkopplingen fungerar: conn.open "server=localhost;db=ditt_databasnamn;driver=mySQL;uid=ditt_inloggningsnamn;pwd=ditt_lösenord" Hoppas det här kan hjälpa dig en bit på väg. Tjipp ____Robbac_____________________________________ The Truth Is Out there
  4. Robbac1

    Komplicerat?

    Hej Jess! Det låter inte alls så förvirrat som du tror *ler*. Lösningen på ditt problem är hyfstat enkelt igentligen. Du skriver inte vad du använder för typ av databashanterare, så förklaringen jag ger förutsätter MS SQL, men oavsett vad du använder är det ju oftast bara syntaxskillander som är lätta att lista ut vad det skall vara. Vad jag ser är att du behöver tre stycken tabeller: 1. Kategorier id, parentid, kategori 2. Recept (dina kolumner) 3. KategoriRecept ReceptID KategoriID I tabell 1 lägger du in alla kategorier du har, parentid anger du som NULL eller 0 om det är en huvudkateori, om det är en underkategori anger du idt för förälderkategorin. I tabell 2 lägger du in dina recept. I tabell 3 lägger du in vilka olika kategorier ett recept kan tillhöra. Sen för att kunna lista ut vilka underkategorier som finns till en kategori (ovasett om det är en huvud- eller underkategori) använder du något som kallas för en Self Join, som skrivs så här: SELECT k1.id AS ParentID, k1.kategori AS ParentKategori, k2.id AS ChildID, k2.kategori AS ChildKategori FROM Kategori k1 LEFT JOIN Kategori k2 ON k1.id = k2.parentid -- om du vill ha för en viss kategori WHERE k1.id = <den huvudkategori du söker på> Anledningen till att jag använder "LEFT JOIN" är för att lista alla kategorier, oavsett om det finns en underkategori eller inte. I de fallen en kategori inte har en underkategori får du NULL i k2.id och k2.kategori. Om du behöver, vilket jag inte tror, förklaring för hur du listar alla recept till en viss kategori skriver du som följer: SELECT k1.id AS KategoriID, k1.kategori, r1.id AS ReceptID, FROM Kategori k1, KategoriRecept kr, Recept r1 WHERE k1.id = kr.kategoriid AND kr.receptid = r1.id AND k1.id = <den kategori du vill lista> Jag hoppas det här hjälper dig en bit på väg i din lösning. Tjipp, ____Robbac_____________________________________ The Truth Is Out there
  5. Finns det något sätt att man kan få Enterprise Manager att visa "Taskpad" som standardvy istället för, som det är nu "Large Icons". Om man går in och ändrar på en vy kommer ju Enterprise Manager ihåg vilken inställning man hade, men med tanke på att databasantalet är över 1000 där jag jobbar kan det bli lite jobbigt att gå in och ändra i alla... Skulle vara tacksam om någon kunde hjälpa mig. ____Robbac_____________________________________ The Truth Is Out there
  6. Ser sökvägen ut som den stämmer på det du får ut från: Response.Write(Server.MapPath("gastbok.mdb")) Jag kan tyvärr inte svara ang Chilisoft, men tycker väl att det inte borde vara någon skillnad. Dokumentation? Prata med ansvarig databasadministratör om du vill få reda på namnet på SQL-servern. ____Robbac_____________________________________ The Truth Is Out there [inlägget ändrat 2002-04-04 15:48:33 av Robbac1]
  7. Jag antar ifrån ditt sätt att skriva att sidan laddas upp någon annanstans, och inte på din dator. I den connection-kopplingen du anger du en direkt pekare till en fil "c:\...". Om du tex laddar upp sidan till ett webbhotell är det ju inte säkert att databasen finns just på den sökvägen. För att komma runt det här kan man använda sig av "Server.Mappath("minfil.mdb")" för att få ut korrekt sökväg där filen ligger. Så jag skulle vilja ändra din Connection till något liknande den här nedan. Naturligtvis bör du kanske ändra sökvägen så det stämmer med strukturen till din sida. "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\asp\gastbok\gastbok.mdb") För att kunna göra något liknande för en SQL-databas ändrar du Connection till något åt detta hållet (beroende på servernamn och så vidare): "driver={SQL Server};server=servernamn;uid=användarnamn;database=mindatabas;pwd=mittlösenord;" ____Robbac_____________________________________ The Truth Is Out there
  8. Problemet är att värdet du får ifrån ditt Recordset behandlas som text och inte som ett tal. Om du använder funktionen CInt() löser detta: VardeEtt = CInt(rs("ett"))*10 VardeTva = CInt(rs("tva"))*10 ____Robbac_____________________________________ The Truth Is Out there
  9. Nej man behöver INTE installera något på servern för att man skall kunna ladda upp filer. Visst, använder man sig av komponenter som tex ASPUpload så blir livet mycket mycket enklare, men det går att lösa utan några större problem. Här finns ett skript jag vet fungerar alldeles utmärkt: http://www.joakimweb.com/ Gå vidare till --> "Webbutveckling / ASP" --> "Mina egna asp-scripts" --> "Ladda upp filer v.2" ____Robbac_____________________________________ The Truth Is Out there
  10. Härligt att det har löst sig för dig... ____Robbac_____________________________________ The Truth Is Out there
  11. Än så länge kan vi väl skratta åt det? Felet du beskriver beror på att det är något kopieringsfel... Kopiera in denna texten och ersätt den som ser "likadan" ut... DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; " DSNtemp=dsntemp & "DBQ=" & Server.MapPath ("databas/databas.mdb") Connection.Open DSNtemp tror det är rad 4,5,6 och 7 i det jag skrev innan ____Robbac_____________________________________ The Truth Is Out there
  12. Ersätt bara punkterna med divisionstecken med funktionen Replace(). mittDatum = Replace(mittDatum,".","/") Något du borde kolla är att månad och dag behandlas korrekt, om du har tex: 1/3/2002, skall det behandlas som 1 mars eller 3 januari... Vaför jag kommenterar det är att punkt används i amerikanskt datumformat, och de kastar om måndad och dag: USA - mm.dd.yyyy SWE - dd/mm/yyyy ____Robbac_____________________________________ The Truth Is Out there
  13. Man länkar inte tabeller utan man länkar servrar i SQL. Ta en titt i Books Online under "sp_linkedservers" så hittar du information om hur man gör. ____Robbac_____________________________________ The Truth Is Out there
  14. Okay... <% Dim Connection, DNStemp Set Connection = Server.CreateObject("ADODB.Connection") DNStemp="DRIVER={Microsoft Access Driver (*.mdb)}; " DNStemp=DSNtemp& "DBQ=" & Server.MapPath ("databas/databas.mdb") Connection.Open DNStemp Dim Uppdatera Uppdatera = "UPDATE priser SET pris= '" & Request.Form("pris") & "' WHERE ID=" & Request.Form("id") Connection.Execute(Uppdatera) Connection.Close Set Connection = Nothing %> Koden är alltså i stort sett densamma som den innan. Den egentliga skillnaden är att de enkla citattecknerna är borta runt ID. Koden ovan förutsätter att: 1. Att du har en databas som heter "databas.mdb" i katalogen "databas". 2. Att du har ett formulär som anropar den här sidan, och har ett formulär med "method" satt till "post". Om du inte "method" eller har "method=get"o ditt formulär, ändrar du koden ovan från: Request.Form till: Request.Querystring Får du det att fungera? ____Robbac_____________________________________ The Truth Is Out there
  15. Man behöver inte göra några loopar eller något sånt. Det finns väldigt enkla funktioner för att kolla siffror. Här är en mycket enkel variant där formuläret inte skickas om man har annat än siffror i textfältet. Det här skall in mellan <head></head>: <script language="javascript"> function checkForm() { if ( isNaN(document.mittForm.mittFalt.value) ) { alert("Endast nummer tack"); return false; } } </script> Och tex kan formuläret se ut så här: <form name="mittForm" onSubmit="return checkForm();"> <input type="text" name="mittFalt"> <input type="submit"> </form> Det som händer här är att när formuläret skickas kollas "onSubmit" först. Och "checkForm" kollar fältet i formuläret. Om det finns något annat där än siffror så visas (isNaN) först ett meddelande, och sen avbryts ivägskickadet av formuläret. ____Robbac_____________________________________ The Truth Is Out there
×
×
  • Skapa nytt...