Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

Нельзя сохранить из дельф больше чем 256 символов в MS SQL!!!   Найти похожие ветки 

 
vasilly   (2002-04-01 08:43) [0]

Есть задача: хранить в БД поля длина которых превышает 256 символов. Как это сделать??
Пробывал создавать на сервере varchar(1024) например, varbinary(1024).. это не помогает, приходят уже отсеченные данные и сохраняются в сервак!
Как вы думаете? Что делает написанная ниже процедура. Она сохраняет только 256 символов, а почему я никак не могу понять!
Единственное что я понял - что отсечение происходит в DataSet"е... Как с этим бороться...???
var Query: TQuery;
Str: PChar;
begin Str:=
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
Query:= TQuery.Create( Application);
Query.DatabaseName:= "bd";
Query.SQL.Add("update Table1 set Marks=:Marks where ONum=13");
Query.ParamByName("Marks").SetBlobData( Str, 1024);
Query.Prepare;
Query.ExecSQL;
Query.Close;
Query.Free;
end;

Когда в "SQL Server query analyzer" выполняешь скрипт: SELECT cast(marks AS varchar(1024)) FROM Table1 WHERE ONum = 13
то он возвращает только 256 символов


 
sniknik   (2002-04-01 08:54) [1]

а может и нет (в смысле не в DataSet"е). на форуме
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowBoard&Board=mssql&Idle=&Sort=&Order=&Session=
есть обсуждение подобной темы, а там они не используют DataSet да и Delphi тоже.


 
vasilly   (2002-04-01 09:02) [2]

Вопрос все еще актуален!


 
Lusha   (2002-04-01 09:19) [3]

Отсеченние происходит в SQL Link. Она не знает о новых типах MS SQL. Если Вы желаете, чтобы Ваше приложение корректно работало с новыми типами данных MS SQL Server, используйте для соединением с ним его родной ODBC драйвер.



 
vasilly   (2002-04-01 09:21) [4]

так здорово... поточнее про родной драйвер можно?
+ от БДЕ отказаться нельзя


 
Lusha   (2002-04-01 09:34) [5]

А и не надо отказываться. Соединитесь с сервером не через NATIVE драйвер, а через ODBC драйвер, входящий в поставку MS SQL Server.
Создаете DSN в секции ODBC Driver панели управления. И указываете этот DSN в качестве Alias в своей программе...


 
Dimedrol   (2002-04-02 11:38) [6]

БДЕ к стати отлично подхватывает запись в ОДБЦ, как алиас
своей "родной" базы.
Сам так работаю.


 
amamed_3071   (2002-04-02 11:54) [7]

Если Соединенние через АДО то не будет проблем Если через ВДЕ то тип поля надо заменит на "Text"


 
amamed_3071   (2002-04-02 12:12) [8]

И проседуру напиши так
var str:String;

Begin
Str:=
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"+#10#13+
"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
Query:= TQuery.Create( Application);
Query.DatabaseName:= "bd";
Query.SQL.Add("update Table1 set Marks="+str+" where ONum=13");
Query.Prepare;
Query.ExecSQL;
Query.Close;
Query.Free;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
6-69957
Vadim_V
2002-02-08 14:31
2002.04.22
Работа с сетью


1-69915
inko
2002-04-09 17:55
2002.04.22
Backup файла.


3-69742
KAA
2002-03-27 17:48
2002.04.22
Шахматка 2000


1-69871
snoup
2002-04-08 20:45
2002.04.22
Как TPopup соединить с TToolBar?


14-69980
Sergey13
2002-03-14 11:21
2002.04.22
А где моя ветка про религию?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский