ODBS + MSSQL

yael800

New member
ODBS + MSSQL

I'm using sql serser 2000, CRecordset, CDatabase, ODBC, VC++ MFC איך אני יכולה לשלוף נתון מסוג ntext או nvarchar אם אני עושה SELECT לנתון מסוג text או varchar אני מקבלת את המחרוזת במלואה. כמובן שהפיתרון הוא לא לשנות את הבסיס נתונים עצמו. אולי הפתרון הוא לבצע CASTING מנתון NTEXT ל TEXT? אם כן, איך רושמים דבר כזה בשאילתא?
// activity as ntext (16) SqlString = "SELECT activity FROM tasks WHERE status_id=1";​
תודה מראש, יעל.
 

yael800

New member
מה בדיוק לא מובן?

אני רוצה לבצע בשאילתא CAST מנתון שמובא לי כ NTEXT לנתון שיהיה TEXT.
 

24sharon

New member
באיזו סביבת עבודה את עובדת

כי ברגע ששולפים נתון משדה NTEXT או NVARCHAR, הוא נכנס אוטומטית כSTRING במחרוזת המתקבלת. מה העניין להפוך NTEXT לTEXT, זה מוריד את אפשרות היוניקוד. נראה לי שיש לך 'טעות' איפשהו בדרך. בהצלחה!
 

yael800

New member
אז איך בבקשה

אני עושה מבחינה תחבירית CASTING לנתון מסוג NTEXT ל TEXT?
 

24sharon

New member
שוב, אני חושבת שיש לך טעות

במידה ויש נתונים שהם לא ספרות או אותיות באנגלית זה יכול ליצור לך בעיה. בכל אופן ניסית את התחביר הפשוט?
SELECT CAST([mtFiled] AS varchar) as myCol FROM myTable​
לא יודעת אם עוזר, אבל אולי
 

yael800

New member
זה בדיוק

נותן לי פיתרון, מביא לי את התכולה בעברית. עכשיו, אם העמודה שלי היא NTEXT 16 איזה גודל זהה לה כשאני ממירה ל TEXT? וזאת ע"מ שלא לאבד נתונים? SELECT CAST([mtFiled] AS text(100)) as myCol FROM myTable
 

yael800

New member
אם אלו הנתונים..

text Variable-length data with a maximum length of 2^31 - 1 characters nchar Fixed-length Unicode data with a maximum length of 4,000 characters nvarchar Variable-length Unicode data with a maximum length of 4,000 characters ntext Variable-length Unicode data with a maximum length of 2^30 - 1 characters
 
למעלה