/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fra <textarea> til en database - online
Fra : Ukendt


Dato : 03-10-05 16:49

Hej.

Jeg har fundet en free wysiwyg editor til online redigering lavet vha. js.

Jeg har ligeledes oprettet en database og åbnet en adgang hertil.

Men jeg har nu problemer med at få indholdet af min <textarea> over i
databasen. Er der en, der vil hjælpe mig med en metode hertil?



 
 
Martin Kaltoft (03-10-2005)
Kommentar
Fra : Martin Kaltoft


Dato : 03-10-05 17:45

> Men jeg har nu problemer med at få indholdet af min <textarea> over i
> databasen. Er der en, der vil hjælpe mig med en metode hertil?

hvis du laver en <textarea name=foo></textarea> vil indholdet ligge i
variablen "foo" enten som GET eller POST variabel, afhængig af hvordan
formen er sat op.

--
Med venlig hilsen

Martin Kaltoft

Ukendt (03-10-2005)
Kommentar
Fra : Ukendt


Dato : 03-10-05 17:54

"Martin Kaltoft" <kaltoft@gmail.com> skrev i en meddelelse
news:43416012$0$84041$edfadb0f@dtext01.news.tele.dk...
>> Men jeg har nu problemer med at få indholdet af min <textarea> over i
>> databasen. Er der en, der vil hjælpe mig med en metode hertil?
>
> hvis du laver en <textarea name=foo></textarea> vil indholdet ligge i
> variablen "foo" enten som GET eller POST variabel, afhængig af hvordan
> formen er sat op.

OK, men hvordan kommer jeg videre derfra?

En submit knap? Hvordan gøres dette? Jeg har forsøgt, men uden held.



Ukendt (03-10-2005)
Kommentar
Fra : Ukendt


Dato : 03-10-05 20:36

"Michael Sørensen" <.> skrev i en meddelelse
news:434160f0$0$11671$ba624c82@nntp02.dk.telia.net...
> "Martin Kaltoft" <kaltoft@gmail.com> skrev i en meddelelse
> news:43416012$0$84041$edfadb0f@dtext01.news.tele.dk...
>>> Men jeg har nu problemer med at få indholdet af min <textarea> over i
>>> databasen. Er der en, der vil hjælpe mig med en metode hertil?
>>
>> hvis du laver en <textarea name=foo></textarea> vil indholdet ligge i
>> variablen "foo" enten som GET eller POST variabel, afhængig af hvordan
>> formen er sat op.
>
> OK, men hvordan kommer jeg videre derfra?
>
> En submit knap? Hvordan gøres dette? Jeg har forsøgt, men uden held.

Mit problem er, at når jeg klikker på "gem" (en submit knap) så slettes
teksten i >textarea'en> men den indsættes ikke i databasen... :( Jeg får
med andre ord ingen fejlmeddelelser.

Mine koder er herunder. Er der en, der kan se, hvor det halter for mig.

<%
tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ="
& Server.MapPath("../../../../database/indhold.mdb") & ";UID=admin;PWD=;"
%>

<form method="post" action="editor.asp">
<textarea name="Tekst_indhold">
</textarea>
<input type="submit" value="Gem">
<%
If Request.Form("Gem") <> "" Then
strSQL = "Insert into indhold (tekst) values('" &
Request.Form("Tekst_indhold") & "')"
Conn.Execute(strSQL)
end if
%>



Jens Gyldenkærne Cla~ (03-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-10-05 21:27

Michael Sørensen skrev:

> Mit problem er, at når jeg klikker på "gem" (en submit knap)
> så slettes teksten i >textarea'en> men den indsættes ikke i
> databasen... :( Jeg får med andre ord ingen fejlmeddelelser.

Så må du i gang med at fejlfinde på anden vis.


> <form method="post" action="editor.asp">

Står koden herover i editor.asp? (med andre ord - poster formen til
sig selv eller til en anden fil)


> <input type="submit" value="Gem">
> <%
> If Request.Form("Gem") <> "" Then

Du har ikke noget element kaldet "Gem" - du har en unavngiven
submitknap med *værdien* "Gem". Derfor vil ovenstående if-sætning
aldrig blive sand.

Prøv med <input type="submit" name="Gem" value="Gem">


> strSQL = "Insert into indhold (tekst) values('" &
> Request.Form("Tekst_indhold") & "')"

Her bør du som minimum sikre dig mod fejl på grund af anførselstegn
(hvis Tekst_indhold indeholder en apostrof, vil ovenstående kode
fejle). Se mere her: <http://asp-faq.dk/article/?id=95>.

Hvis der skal indtastes længere tekster, er det ikke sikkert at det
kan håndteres af en INSERT-sætning. Brug i stedet en cursor.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jørn Andersen (04-10-2005)
Kommentar
Fra : Jørn Andersen


Dato : 04-10-05 16:22

On Mon, 03 Oct 2005 22:26:57 +0200, Jens Gyldenkærne Clausen
<jens@gyros.invalid> wrote:

>Hvis der skal indtastes længere tekster, er det ikke sikkert at det
>kan håndteres af en INSERT-sætning. Brug i stedet en cursor.

Hov, den havde jeg ikke hørt før. Vil du uddybe?
Hvor lange tekster - og i hvilke sammenhænge?

Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Ukendt (04-10-2005)
Kommentar
Fra : Ukendt


Dato : 04-10-05 21:19

Hej igen.

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns96E4E45DC93C4jcdmfdk@gyrosmod.cybercity.dk...
> Michael Sørensen skrev:
>
>> Mit problem er, at når jeg klikker på "gem" (en submit knap)
>> så slettes teksten i >textarea'en> men den indsættes ikke i
>> databasen... :( Jeg får med andre ord ingen fejlmeddelelser.
>
> Så må du i gang med at fejlfinde på anden vis.

Men det er som at lede efter en nål i en høstak, når man ikke får en
"ledetråd" af systemet. I hvert fald som nystartet indenfor området.

Jeg har i øvrigt rettet lidt, så nu har jeg fået en fejlmeddelelse. Om jeg
så er kommet nærmere eller fjernere en løsning, må tiden vise

>> <form method="post" action="editor.asp">
>
> Står koden herover i editor.asp? (med andre ord - poster formen til
> sig selv eller til en anden fil)

Såvel formen som koden står i samme fil - editor.asp

>> <input type="submit" value="Gem">
>> <%
>> If Request.Form("Gem") <> "" Then
>
> Du har ikke noget element kaldet "Gem" - du har en unavngiven
> submitknap med *værdien* "Gem". Derfor vil ovenstående if-sætning
> aldrig blive sand.
>
> Prøv med <input type="submit" name="Gem" value="Gem">

Er hermed tilrettet.

>> strSQL = "Insert into indhold (tekst) values('" &
>> Request.Form("Tekst_indhold") & "')"
>
> Her bør du som minimum sikre dig mod fejl på grund af anførselstegn
> (hvis Tekst_indhold indeholder en apostrof, vil ovenstående kode
> fejle). Se mere her: <http://asp-faq.dk/article/?id=95>.
>
> Hvis der skal indtastes længere tekster, er det ikke sikkert at det
> kan håndteres af en INSERT-sætning. Brug i stedet en cursor.

Ovenstående vil jeg helt sikkert kigge på og arbejde med, når jeg får løst
mit første problem.

I den forbindelse vil jeg gerne linke til testsiden.
http://www.skindbeni.skindbeni.dk/skindbeni/admin/htmlarea/editor.asp

Uddrag fra koden til ovennævnte side er her:

---
<form method="post" action="editor.asp">

<hr align="center" width="100%">
<textarea name="tekst" style="width:800; height:300;">
</textarea>

<script language="javascript1.2">editor_generate('tekst');
</script>

<input type="submit" name="Gem" value="Gem">

<%
tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ="
& Server.MapPath("../../../../database/indhold.mdb")

If Request.Form("Gem") <> "" Then
Conn.Open
strSQL = "Insert into Indhold (Tekst) values('" & Request.Form("tekst") &
"')"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
end if
%>

</form>
---

Jeg får en fejlmeddelelse omkring linien 74. Det er linien Conn.Open

Jeg har prøvet at læse fra databasen. Det fungerer fint nok. Problemet er
således stadig, når der skal indsættes indhold i databasen. Der sker
simpelthen intet i databasen.

Jeg forsøger at gemme i databasen Indhold. Jeg har 8 Felter: ID
(Autonummerering), Overskrift, Underoverskrift, Tekst, Dato, Tid, Navn,
Billede. I testen forsøger jeg kun at skrive til feltet Tekst.



Jens Gyldenkærne Cla~ (04-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-10-05 22:37

Jørn Andersen skrev:

>>Hvis der skal indtastes længere tekster, er det ikke sikkert
>>at det kan håndteres af en INSERT-sætning. Brug i stedet en
>>cursor.
>
> Hov, den havde jeg ikke hørt før. Vil du uddybe?

Jeg tænkte i første omgang på MSSQL's håndtering af text/ntext-
felter ved indsættelse. Her beskriver BOL[1] at datastumper på mere end
8000 tegn (4000 for ntext) skal deles op i flere blokke. Hvad jeg
imidlertid har overset indtil nu, er at denne opdeling foretages af
API'en, så den denne grænse har ikke betydning for længden på en
sql-sætning.

Der er dog stadig en grænse for hvor meget kan man skrive i en
enkelt sql-sætning. Den er ca. 64000 tegn i Access[2], og en del højere
i MSSQL [3]. Jeg legede lige lidt med MSSQL for at se om jeg kunne
fremprovokere en fejl - men efter at have nået op på 2.3 millioner
tegn (et 951 siders word-dokument) uden fejl, stoppede jeg.

Der er også en mulig grænse i ADO-driveren - men jeg har ikke
kunnet finde nogen oplysninger om den.

Grænsen ser under alle omstændigheder ud til at ligge væsentligt
lavere end jeg havde troet. Bruger man Access, svarer de 64000 tegn
sådan cirka til en 30 siders tekst - så i de fleste tilfælde skulle
man kunne klare sig.

Noter:
======

[1] http://msdn.microsoft.com/library/en-us/acdata/ac_8_qd_13_8orl.asp
[2] <http://office.microsoft.com/en-us/assistance/HP051868081033.aspx>
[3] <http://msdn.microsoft.com/library/en-us/architec/8_ar_ts_8dbn.asp>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Jens Gyldenkærne Cla~ (04-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 04-10-05 22:40

Michael Sørensen skrev:


> tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver
> (*.mdb)};DBQ=" &

[snip]

> Conn.Open

Du klargør en variabel kaldet tempConn, og forsøger derefter at
benytte en variabel kaldet Conn - kan du se problemet?

Jeg kan anbefale artiklen her: <http://asp-faq.dk/article/?id=9>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Ukendt (05-10-2005)
Kommentar
Fra : Ukendt


Dato : 05-10-05 21:23

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns96E5F0C7462B8jcdmfdk@gyrosmod.cybercity.dk...
> Michael Sørensen skrev:
>
>
>> tempConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver
>> (*.mdb)};DBQ=" &
>
> [snip]
>
>> Conn.Open
>
> Du klargør en variabel kaldet tempConn, og forsøger derefter at
> benytte en variabel kaldet Conn - kan du se problemet?

Ja, det kan jeg egentlig godt. Men jeg kan ikke se løsningen... Jeg har
ændret tempConn til Conn, men får en fejlmeddelelse om nedenstående. Jeg vil
nemlig mene, at det ville have løst problemet med ovennævnte ændring. Hvad
er det, som jeg umiddelbart ikke kan overskue ved denne programmering?

---
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'PROVIDER=MSDASQL;DRI'
/skindbeni/admin/htmlarea/editor.asp, line 74
---

Linie 74 er markeret med _ _ herunder

<%
Conn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("../../../../database/indhold.mdb")

If Request.Form("Gem") <> "" Then
_Conn.Open_
strSQL = "Insert into Indhold (Tekst) values('" & Request.Form("tekst") &
"')"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
end if
%>

> Jeg kan anbefale artiklen her: <http://asp-faq.dk/article/?id=9>.

Ved at indsætte Option Explicit som artiklen forklarer får jeg endnu en fejl
om, at en sætning var ventet. Tager lige en ting af gangen. Mit største
problem er den manglende indsætning i databasen.



Jens Gyldenkærne Cla~ (06-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-10-05 11:40

Michael Sørensen skrev:

> Ja, det kan jeg egentlig godt. Men jeg kan ikke se
> løsningen... Jeg har ændret tempConn til Conn, men får en
> fejlmeddelelse om nedenstående. Jeg vil nemlig mene, at det
> ville have løst problemet med ovennævnte ændring. Hvad er det,
> som jeg umiddelbart ikke kan overskue ved denne programmering?

Du opretter pt en variabel (Conn) der indeholder en tekst. Den
forsøger du så at åbne - det virker ikke.

Du skal i stedet oprette en connection-object (med
Server.CreateObject) og åbne det, med din connectionstring som
parameter.

Prøv at se bekskrivelsen på siden her:
<http://html.dk/tutorials/asp/lektion18.asp>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Ukendt (06-10-2005)
Kommentar
Fra : Ukendt


Dato : 06-10-05 18:52

Hej Jens.

Nu er det ikke fordi, at det behager mig at køre rundt i det og bidrage med
"jeg kan ikke finde ud af det"-attituder, men det gør jeg alligevel, for jeg
får stadig fejl.

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns96E780C766A03jcdmfdk@gyrosmod.dtext.news.tele.dk...
> Michael Sørensen skrev:
>
>> Ja, det kan jeg egentlig godt. Men jeg kan ikke se
>> løsningen... Jeg har ændret tempConn til Conn, men får en
>> fejlmeddelelse om nedenstående. Jeg vil nemlig mene, at det
>> ville have løst problemet med ovennævnte ændring. Hvad er det,
>> som jeg umiddelbart ikke kan overskue ved denne programmering?
>
> Du opretter pt en variabel (Conn) der indeholder en tekst. Den
> forsøger du så at åbne - det virker ikke.
>
> Du skal i stedet oprette en connection-object (med
> Server.CreateObject) og åbne det, med din connectionstring som
> parameter.
>
> Prøv at se bekskrivelsen på siden her:
> <http://html.dk/tutorials/asp/lektion18.asp>.

Jeg har nu læst artiklen samt taget forbehold for ovenstående og ændret min
kode, men systemet synes nu, at den vil sende mig en ny fejl - ikke når jeg
loader siden, men når jeg klikker på gem-knappen.

Problemet hedder nu:
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en
opdaterbar forespørgsel.
/skindbeni/admin/htmlarea/editor.asp, line 83

Hvor linie 83 er "Conn.Close" i nedenstående uddrag af koden.

---
<form method="post" action="editor.asp">
<textarea name="tekst" style="width:800; height:300;"></textarea>
<input type="submit" name="gem" value="Gem">

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("../../../../database/indhold.mdb")

If Request.Form("Gem") <> "" Then
Conn.Open DSN
strSQL = "Insert into Indhold (Tekst) values('" & Request.Form("tekst") &
"')"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
End if
%>
</form>




Ukendt (06-10-2005)
Kommentar
Fra : Ukendt


Dato : 06-10-05 20:17

"Michael Sørensen" <.> skrev i en meddelelse
news:434562ce$0$10505$ba624c82@nntp02.dk.telia.net...
> Hej Jens.
>
> Nu er det ikke fordi, at det behager mig at køre rundt i det og bidrage
> med "jeg kan ikke finde ud af det"-attituder, men det gør jeg alligevel,
> for jeg får stadig fejl.
>
> "Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
> news:Xns96E780C766A03jcdmfdk@gyrosmod.dtext.news.tele.dk...
>> Michael Sørensen skrev:
>>
>>> Ja, det kan jeg egentlig godt. Men jeg kan ikke se
>>> løsningen... Jeg har ændret tempConn til Conn, men får en
>>> fejlmeddelelse om nedenstående. Jeg vil nemlig mene, at det
>>> ville have løst problemet med ovennævnte ændring. Hvad er det,
>>> som jeg umiddelbart ikke kan overskue ved denne programmering?
>>
>> Du opretter pt en variabel (Conn) der indeholder en tekst. Den
>> forsøger du så at åbne - det virker ikke.
>>
>> Du skal i stedet oprette en connection-object (med
>> Server.CreateObject) og åbne det, med din connectionstring som
>> parameter.
>>
>> Prøv at se bekskrivelsen på siden her:
>> <http://html.dk/tutorials/asp/lektion18.asp>.
>
> Jeg har nu læst artiklen samt taget forbehold for ovenstående og ændret
> min kode, men systemet synes nu, at den vil sende mig en ny fejl - ikke
> når jeg loader siden, men når jeg klikker på gem-knappen.
>
> Problemet hedder nu:
> Fejltype:
> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Microsoft Access-driver] Handlingen skal bruge en
> opdaterbar forespørgsel.
> /skindbeni/admin/htmlarea/editor.asp, line 83

Problemet er "løst" Eller det vil sige, at der ikke længere sker fejl, når
siden ligger på nettet, mens den ikke kan foretage kørslen, når siden ligger
på min interne server i Windows.



Jens Gyldenkærne Cla~ (06-10-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-10-05 21:21

Michael Sørensen skrev:

> Problemet hedder nu:
> Fejltype:
> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Microsoft Access-driver] Handlingen skal
> bruge en opdaterbar forespørgsel.

Her kan det betale sig at bruge gruppens faq-side:
<http://asp-faq.dk/search/?query=opdaterbar+foresp%F8rgsel>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Ukendt (06-10-2005)
Kommentar
Fra : Ukendt


Dato : 06-10-05 22:14

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns96E7E35D5372Ejcdmfdk@gyrosmod.cybercity.dk...
> Michael Sørensen skrev:
>
>> Problemet hedder nu:
>> Fejltype:
>> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
>> [Microsoft][ODBC Microsoft Access-driver] Handlingen skal
>> bruge en opdaterbar forespørgsel.
>
> Her kan det betale sig at bruge gruppens faq-side:
> <http://asp-faq.dk/search/?query=opdaterbar+foresp%F8rgsel>

OK. Tak for info.



Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408799
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste