Конференция "Базы" » ADO, dbGo, пробелы в строках
 
  • _REA (11.06.10 16:43) [0]
    Добрый день
    Первые грабли на которые я наступил при работе с ADO в D2010:
    строковые поля дополняются справа пробелами. Установка Field.FixedChar = False не влияет на пробелы. Как с этим бороться?
  • _REA (11.06.10 16:46) [1]
    Сорри, все в порядке. Пробелы возникли при импорте/экспорте данных из другой таблицы
  • _REA (11.06.10 17:07) [2]
    Избавиться от пробелов можно, если в свойствах поля в Access указать - сжатие Юникод = Да и после этого выполнить запрос обрезания пробелов
  • sniknik © (12.06.10 10:46) [3]
    > указать - сжатие Юникод
    это немного из другой оперы, тип char дополняется до полной длинны пробелами при сохранении, varchar хранит все как задано не меняя длину данных.

    поменяв на "сжатие Юникод" ты видимо этим же привел тип к varchar.
  • _REA (17.06.10 14:05) [4]

    > поменяв на "сжатие Юникод" ты видимо этим же привел тип
    > к varchar.


    а где там этот VARCHAR? Что то я не наблюдаю такого в mdb файле
  • Anatoly Podgoretsky © (17.06.10 14:30) [5]
    > _REA  (17.06.2010 14:05:04)  [4]

    Его там нет, это всего лишь алиас к nVARCHAR, который алиас к CHAR, который
    таковым не яслеется

    А вот полный список алиасов TEXT(n), ALPHANUMERIC,  CHARACTER, STRING,
    VARCHAR, CHARACTER VARYING, NCHAR, NATIONAL CHARACTER, NATIONAL CHAR,
    NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING
  • _REA (17.06.10 14:39) [6]
    Посмотрел справку, Jet типов там всего два - TEXT и MEMO, остальное синонимы.
    Про пробелы ничего там не сказано. Если есть идеи как бороться с пробелами без юникодного сжатия и функции Trim - буду рад услышать.
  • sniknik © (17.06.10 14:43) [7]
    > а где там этот VARCHAR?
    там нет, но попробуй сделать пару таблиц запросами из дельфи
    CREATE TABLE Table1 (ID Identity(1, 1) PRIMARY KEY, TestChar Char(50))
    и
    CREATE TABLE Table2 (ID Identity(1, 1) PRIMARY KEY, TestChar VarChar(50))

    и посмотри разницу в поведении.
    после сравни созданное (руками) в самом access, и экспортированное из dbf (вот тут варчаров точно нет, и что за тип в этом случае экпортнётся?).
  • _REA (17.06.10 14:55) [8]
    В редакторе структуры Access разницы нет, в данных действительно есть разница. И что теперь для всех таблиц SQL запросами структуру менять?
    Че то в микрософте перемудрили с типами...
  • Anatoly Podgoretsky © (17.06.10 15:19) [9]
    > _REA  (17.06.2010 14:55:08)  [8]

    Ничего не перемудрили, просто Акцесс создавался для ламеров, то есть для
    непрофессиональных пользователей.
  • _REA (17.06.10 15:26) [10]
    Спасибо за помощь!

    И похоже там нельзя менять тип сразу нескольких полей. Во всяком случае я не нашел как. Будьте добры выполнить 100 SQL запросов и не ошибиться.
  • Ega23 © (17.06.10 16:33) [11]

    > И похоже там нельзя менять тип сразу нескольких полей. Во
    > всяком случае я не нашел как. Будьте добры выполнить 100
    > SQL запросов и не ошибиться.


    А где можно?
  • _REA (17.06.10 17:58) [12]
    >А где можно?
    не знаю, но логично было бы сделать через запятую изменение полей. хотя возможно я хочу чего то странного...
  • Ega23 © (18.06.10 13:27) [13]

    > не знаю, но логично было бы сделать через запятую изменение
    > полей. хотя возможно я хочу чего то странного...


    Смотри синтаксис DDL-команды ALTER TABLE
  • _REA (18.06.10 15:59) [14]
    да посмотрел конечно. сделал по одному полю. всем спасибо.
 
Конференция "Базы" » ADO, dbGo, пробелы в строках
Есть новые Нет новых   [134433   +22][b:0][p:0]