Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 перенос DBF на SQL (переносятся все пробелы)  [new]
Василий Л
Member

Откуда: Ставрополь
Сообщений: 47
Помогите пожалуйста.

Есть таблицы в DBF формате, их нужно перенести на MS SQL server 2000 в уже существующюю таблицу с такой-же структурой как и у DBFa, но косяк в том, что строковые поля переносятся с кучей пробелов.

Переносил данные с помощью insert SQL

Подскажите пожалуйста. Заранее благодарю.
7 июн 04, 16:17    [726623]     Ответить | Цитировать Сообщить модератору
 Re: перенос DBF на SQL (переносятся все пробелы)  [new]
unicode
Member

Откуда:
Сообщений: 810
можно сначала обработать поля оператором ALLTRIM я сам на дельфи пишу.. у меня все ок Да и лучше сначала их в текстовой формат преоброзовать а потом в сиквел
7 июн 04, 17:43    [726989]     Ответить | Цитировать Сообщить модератору
 Re: перенос DBF на SQL (переносятся все пробелы)  [new]
unicode
Member

Откуда:
Сообщений: 810
function DeleteSpaces(const aSrc:String):String;
var
 isSpace: Boolean;
 i,j: Integer;
 s,s1:string;
begin
 SetLength(Result,Length(aSrc));
 isSpace := False;
 j := 0;
 for i := 1 to Length(aSrc) do
 begin
   if (aSrc[i] <> ' ') then
     begin
     Inc(j);
     Result[j] := aSrc[i];
     isSpace := False;
     Continue;
   end;
   if (isSpace) then Continue;
      Inc(j);
      Result[j] :=aSrc[i];
      isSpace := True;
 end;
 SetLength(Result,j);
end;

в дельфи это функция удаляет пробелы из строки и оставляет только один пробел между записями.. может тебе поможет смысл в принцепе ясен
7 июн 04, 17:45    [726992]     Ответить | Цитировать Сообщить модератору
 Re: перенос DBF на SQL (переносятся все пробелы)  [new]
unicode
Member

Откуда:
Сообщений: 810
если у тебя получиться постарайся поставить между записями comma ; или , тогда не имеет значения сколько пробелов потому что например запись
ijdwfc ;eiwjcnd;

будет рассматриваться как 2 поля первое которое из них с пробелами

у а потом с сиквел

BULK INSERT Database.dbo.[Table]
   FROM FileName

   WITH  ( DATAFILETYPE = N'char',  
         FIELDTERMINATOR = N';',
         ROWTERMINATOR = N'\n',
      )
7 июн 04, 17:49    [727009]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить