Je gaat het pas zien als je het doorhebt.
Verwijderd
B. Use WRITETEXT to Change Text Data
This example puts the text pointer into the local variable @@ptrval, and then WRITETEXT places the new text string into the row pointed to by @@ptrval.
DECLARE @@ptrval varbinary(16)
SELECT @@ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books'
WRITETEXT pub_info.pr_info @@ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest puglication this makes NMB the hottest new publisher of the year!'
Note that publication is spelled incorrectly (puglication) in this example. In example C, this value is corrected with UPDATETEXT.
C. Use UPDATETEXT to Modify Text Data
This example puts the text pointer into the local variable @@ptrval, and then uses UPDATETEXT to update the spelling error in example B.
DECLARE @@ptrval varbinary(16)
SELECT @@ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books'
UPDATETEXT pub_info.pr_info @@ptrval 88 1 'b'
go
Je gaat het pas zien als je het doorhebt.
Je geeft een text mee die je vervolgens in een lokale variabele stopt? Waarom zou je dat doen?Altaphista schreef op 16 september 2002 @ 13:24:
In een stored procedure wil ik een megegeven 'text' inserten in een tabel, maar deze mag maar maximaal 'varchar(8000)' zijn van sql... met als gevolg dat mijn teksten worden afgekapt.
Hoe moet ik deze lokaal groter dan varchar(8000) declareren, want '@myVar = text' mag niet: Error 2739: The text, ntext and image variables are invalid for local variables
Als je hem nu gewoon rechtstreeks in de db insert, heb je dit probleem niet.
Never underestimate the power of
in de stored procedure haal ik een variabele uit een tabel en wil ik deze opslaan om in een obect te stoppen (dat wel text ondersteunt. rechtstreeks opslaan wil niet) Als ik vervolgens terugkeek in het object, zag ik dat de tekst was afgekapt.cameodski schreef op 16 september 2002 @ 15:01:
[...]
Je geeft een text mee die je vervolgens in een lokale variabele stopt? Waarom zou je dat doen?
Als je hem nu gewoon rechtstreeks in de db insert, heb je dit probleem niet.
ben nu aan het prutsen met READTEXT en WRITETEXT...
[ Voor 0% gewijzigd door Altaphista op 16-09-2002 15:25 . Reden: aanpassing ]
Je gaat het pas zien als je het doorhebt.
Post anders je sp hier eens. Er is misschien wel een andere mogelijkheid om dit probleem op te lossen.
Never underestimate the power of
OK, hier is tie dan:cameodski schreef op 16 september 2002 @ 15:53:
Tot nu toe heb ik altijd kunnen voorkomen, dat ik UPDATETEXT, WRITETEXT enz. moest gebruiken, want dat is niet leuk.
Post anders je sp hier eens. Er is misschien wel een andere mogelijkheid om dit probleem op te lossen.
1
2
3
4
5
6
7
8
9
10
11
12
13
| declare @mailobject ..., --nog een aantal vars... @hetbericht binary(16) SELECT (...), @hetbericht = TEXTPTR(het_bericht) FROM emails WHERE ... --EN DAN HIER DE WRITE/READTEXT --mailobject aanmaken --mailobject aangemaakt exec @hr = sp_OASetProperty @mailobject , 'HTMLBody', @hetbericht --mail versturen |
Bij de WRITETEXT/READTEXT gaat het fout (beide al geprobeerd), want ik krijg het mailtje wel, maar volgens mij alleen een adresgeheugen.
Hoop dat je er wat van kan maken
Je gaat het pas zien als je het doorhebt.
Ja, dat kan kloppen, want je geeft een pointer mee als parameter, terwijl er een stuk tekst in moet.Altaphista schreef op 16 september 2002 @ 16:12:
Bij de WRITETEXT/READTEXT gaat het fout (beide al geprobeerd), want ik krijg het mailtje wel, maar volgens mij alleen een adresgeheugen.
Maar is het misschien niet handiger om dit in je applicatie te doen. SQL Server biedt inderdaad allerlei leuke faciliteiten, maar af en toe zijn ze net niet af.
En misschien(?) is dit er wel één van.
Never underestimate the power of
ja, maar hoe haal ik de tekst dan uit de pointer om dit in een textvariabele te 'writen'? Lijkt mij dat dat juist moet kunnen.cameodski schreef op 16 september 2002 @ 19:39:
[...]
Ja, dat kan kloppen, want je geeft een pointer mee als parameter, terwijl er een stuk tekst in moet.
[...].
Je gaat het pas zien als je het doorhebt.
Never underestimate the power of
cameodski schreef op 17 september 2002 @ 11:11:
Met READTEXT. Maar ik betwijfel of ie dat pikt.
Maar ik wil dus de waarde uit een text-veld uit een tabel toewijzen aan de variabele in de stored procedure... en deze moet langer kunnen zijn dan varchar(8000) toch
Je gaat het pas zien als je het doorhebt.
Is het een idee om een dummy parameter van het type TEXT mee te geven aan je sp.
Dan kun je die gebruiken om je data in te plakken. Elke keer mbv SUBSTRING een stukje uit je db lezen en toevoegen aan de dummy parameter.
Met DATALENGTH kun je bepalen hoelang je text veld in de db is.
Never underestimate the power of
Het probleem is niet dat je dit niet kunt meegeven aan het object, maar dat MSSQL niet wil dat je een variabele text definieert in een stored procedure. Je kunt dus wel een text-type meegeven, maar lokaal in de SP kapt ie m af.cameodski schreef op 17 september 2002 @ 12:05:
Kun je eigenlijk wel een parameter van het type TEXT meegeven aan sp_OASetProperty?
Is het een idee om een dummy parameter van het type TEXT mee te geven aan je sp.
Dan kun je die gebruiken om je data in te plakken. Elke keer mbv SUBSTRING een stukje uit je db lezen en toevoegen aan de dummy parameter.
Met DATALENGTH kun je bepalen hoelang je text veld in de db is.
Ik ben dus op zoek naar een manier om dit te omzeilen: dus een var in de SP die meer dan 8000 (tekst)chars kan bevatten...
Het opsplitsen lijkt mij tot nu toe de enige oplossing...
Je gaat het pas zien als je het doorhebt.
Never underestimate the power of
cameodski schreef op 17 september 2002 @ 13:01:
Ja, een lokale variabele van het type TEXT kan inderdaad niet. Daarom had ik het in mijn vorige reply ook over een dummy parameter die je aan je sp meegeeft.
de error:
Server: Msg 409, Level 16, State 1, Procedure my_procedurename, Line 46
The assignment operator operation cannot take a text data type as an argument.
Je gaat het pas zien als je het doorhebt.
Never underestimate the power of
Je gaat het pas zien als je het doorhebt.
Het is een BUG
http://support.microsoft....px?scid=KB;EN-US;Q325492&
[ Voor 0% gewijzigd door Altaphista op 17-09-2002 15:20 . Reden: url ]
Je gaat het pas zien als je het doorhebt.