powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADOQuery добавляет пробелы к строке
19 сообщений из 19, страница 1 из 1
ADOQuery добавляет пробелы к строке
    #32235590
Julia V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ADOQuery к таблице dBase добавляет к строковым полям пробелы до длины строки, указанной в таблице. Что делать?
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235615
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делать обрезание ...
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235620
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делать обрезание ...
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235729
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно. Так быть не должно бы.
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235737
Julia V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если запрос делаю простым Query (Через BDE), то никаких пробелов не добавляется.
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235758
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мщжет MDAC обновить надо?
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235841
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--ADOQuery к таблице dBase добавляет к строковым полям пробелы до длины строки, указанной в таблице

видимо у тебя поля фиксированной длины.

делай их varchar
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32235995
Дмитрий Мыльников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то ADO не только у dBase добавляет в конец пробелы, но и у других источников тоже. На счёт varchar это помогает в MS SQL Server, но на счёт dBase не знаю... Вроде как там такого типа данных нет (или уже есть?).

Я в своё время вставлял в запросе функцию RTrim(), которая соотвествующее поле обрезала. Но это было с MS SQl Server. Будет ли это работать с dBase - нужно пробовать.
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236001
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какая у тебя база данных?

если SQL SERVER то
проверь тип поля, к которому обращаешься

там заморочки с пробелами генерируются

если у тебя тип char, то она (движок базы данных) вроде заполняет пробелами до указанной максимальной длины строки.

тоже самое с nvarchar

попробуй переделать в varchar
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236003
Alexander2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тьфу! ессно у тебя dBase, а никакой не SQL SERVER
проверь на тип поля varchar как будет реагировать
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236004
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander2
не заметил? человек в начале топика написал dBase
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236227
Julia V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В dBase Varchar не нашла, и RTrim(имя столбца) тоже не помогло. Запрос не ругается, но и пробелы не убирает. :(
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236383
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
люк это какой-то. Не должно так быть. MDAC переставляла?
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236393
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Julia V.

Забудь про все, что выше сказано ... и сделай на клиенте: Trim(...)
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236482
pako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди

По моему в dbf таблицы (VFP например) в character поля пробелы вставляются при записи.

Т.е. я создаю в VFP dbf таблицу с полем character(10)
Записываю туда пару символов. Потом говорю:
STORE поле1 TO aa
? LEN(aa)
и вижу результат 10.

Поэтому делать трим в Delphi при записи бесполезно.
Чтобы удобно было редактировать в форме можно при загрузке данных делать trim() или увеличить в 2 раза по сравнению с длиной поля количество показываемых символов
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236708
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> pako

Так оно и есть. Только когда обращаешся через ADO то пробелы убираются. У меня так происходит. Постить правда я не пробовал. Не было необходимости. Если все нормально то никакого TRIM нафиг не надо.
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236791
Дмитрий Мыльников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я говорил не о Trim при записи, а о Trim в запросе, который данные из таблицы достаёт. Что-то типа:

select RTrim(field1),RTrim(field2),RTrim(field3),...
frim table

Хотя, конечно, это нельзя назвать удобным решением.
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32236866
pako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Papka

У меня через ADO пробелы не удаляются (провайдер VFPOLEDB.1).

>при загрузке данных делать trim() это как у Дмитрия Мыльникова.
но если используешь ADOTable, то конечно вломы удалять пробелы у всей таблицы.
Поэтому, чтобы редактировать поле в например DBEdit без предварительного стирания символов, делаешь MaxLength y DBEdit в 2 раза больше чем размер поля. Правда надо проверить потом длину и предупредить usera что лишнее обрежется.
...
Рейтинг: 0 / 0
ADOQuery добавляет пробелы к строке
    #32237152
Papka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> pako

ConnectionString:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Mode=ReadWrite;Extended Properties="DSN=dBASE Files;DBQ=C:\Sklad\NetBase\;DefaultDir=C:\;DriverId=533;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=C:\

И все нормально. Никаких пробелов.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ADOQuery добавляет пробелы к строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]