|
Как убрать слева и справа пробелы из ADO в Access | ☑ | ||
---|---|---|---|---|
0
EvgeniuXP
08.07.16
✎
21:09
|
Через ADO сохраняю в access, колонки с типом char сохраняются с пробелами на конце, хотя из 1С передаю в value без пробелов.
Как исправить? |
|||
1
КМ155
08.07.16
✎
21:20
|
(0) форум, как обычно, должен угадать пишешь ты их через update или через рекордсет ?
|
|||
2
EvgeniuXP
08.07.16
✎
21:27
|
через ADODB.Command
INSERT INTO [ИмяТаблицы] VALUES ('" + СокрЛП(Выборка.Наименование) + "') |
|||
3
Fram
08.07.16
✎
21:38
|
(0) погуглил. нет в эксессе типа данных char!
|
|||
4
EvgeniuXP
08.07.16
✎
21:51
|
(3) это не у Access выставляем, а у:
Command = Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = Connection; Command.CommandText = "CREATE TABLE [МояТаблица] |(Символьный char(255), Дата date, Целый int, Дробный float)"; Command.Execute(); |
|||
5
EvgeniuXP
08.07.16
✎
21:52
|
Пробовал char(0) ставить - выдает ошибку
|
|||
6
NorthWind
08.07.16
✎
21:52
|
а varchar не пробовали?
|
|||
7
EvgeniuXP
08.07.16
✎
21:53
|
нет
|
|||
8
NorthWind
08.07.16
✎
21:55
|
ну попробуйте varchar или text. Если вы не хотите, чтобы строка дополнялась пробелами, надо тип переменной длины. Я много работал с аксесом, но просто не было необходимости создавать таблицы через create table, весь DDL всегда конструктором делал
|
|||
9
NorthWind
08.07.16
✎
21:55
|
||||
10
EvgeniuXP
08.07.16
✎
21:57
|
спс, в понедельник опробую! вечером отпишусь. А булево как написать? Boolean пробовал, тоже не получилось, хотя можно и числом передать 1 и 0
|
|||
11
EvgeniuXP
08.07.16
✎
22:07
|
bit - булево, varchar тоже есть - похоже то что нужно
|
|||
12
NorthWind
08.07.16
✎
22:10
|
ну да, мне тоже так подумалось - по аналогии с access. Я полез погуглить, но вы меня опередили. Поиск рулит!
|
|||
13
NorthWind
08.07.16
✎
22:10
|
* по аналогии с MSSQL
|
|||
14
Fram
08.07.16
✎
22:10
|
(4) Ну так с этого надо было начинать. char он же фиксированной длины. varchar юзайте
|
|||
15
КМ155
08.07.16
✎
22:18
|
(2) открой рекодсет и обнови через него
будет явное преобразование типов |
|||
16
NorthWind
09.07.16
✎
06:55
|
(15) если внимательно посмотреть (2), то видно, что там делается непараметризованный запрос и гарантированно очищенная от пробелов строка передаётся в качестве константы. Это идеальный вариант - мы сразу можем быть точно уверены что со стороны приложения (и ado, потому что голый command) все в порядке. Остаётся БД.
|
|||
17
КМ155
09.07.16
✎
08:31
|
(16) попробуй передать таким образом дату и ты поймёшь свою ошибку
|
|||
18
EvgeniuXP
09.07.16
✎
10:05
|
(17) а что с датой не так? Передавал - передается как дата и со временем и без времени, вот пустую если нужно передавать то надо null подставлять вместо Дата(1,1,1), иначе получим 0100.01.01 - как-то так, пишу на память
|
|||
19
mistеr
09.07.16
✎
10:28
|
(18) Чуть другие настройки локали - и дата уже не дата. Нужно передавать в параметрах.
|
|||
20
NorthWind
09.07.16
✎
13:01
|
(16), (18) конкретно для JetSQL можно использовать литерал даты #MM/DD/YYYY#. Независимо от локали местоположение компонентов в нем всегда трактуется по американскому стандарту даты месяц/день/год (http://allenbrowne.com/ser-36.html). Хотя можно и в параметр передать, только надо знать как хранится дата в Access (8-байтовое дробное число) и передать так, как он хочет видеть.
|
|||
21
EvgeniuXP
11.07.16
✎
19:46
|
Varchar убрал пробелы! Спс!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |