Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

ALTER TABLE в Delphi   Найти похожие ветки 

 
исследователь   (2007-10-17 17:58) [0]

Как правильно выполнить SQL-запрос с ним? Вот мне надо изменить размер поля. Пишу в ADOQuery

ALTER TABLE TEMP.DBF ALTER POLE CHAR(8)

выдает ошибку


 
Sergey13 ©   (2007-10-17 18:01) [1]

> [0] исследователь   (17.10.07 17:58)
> выдает ошибку

Секретную? Азбукой Морзе?


 
tesseract ©   (2007-10-17 18:20) [2]


> ADOQuery


А open используешь или ExecSQl ?


 
Правильный_Вася   (2007-10-17 19:04) [3]

уменьшать нельзя


 
isasa ©   (2007-10-17 19:42) [4]

TADOCommand ?


 
Anatoly Podgoretsky ©   (2007-10-17 20:59) [5]

Может у человека и базы то нет.


 
исследователь   (2007-10-18 10:23) [6]

Использую ExecSQL, конечно же


 
ЮЮ ©   (2007-10-18 10:33) [7]

> ALTER POLE

Не того поля ягодка, однако :)


 
исследователь   (2007-10-18 10:33) [8]


> Sergey13 ©   (17.10.07 18:01) [1]

Ошибка такая:
[Microsoft][Драйвер ODBC dBASE] Операция не поддерживается для объектов этого типа.

> Правильный_Вася   (17.10.07 19:04) [3

Я поле УВЕЛИЧИВАЮ

> isasa ©   (17.10.07 19:42) [4]

какая, к черту, разница, если я использую ExecSQL?

> Anatoly Podgoretsky ©   (17.10.07 20:59) [5]

за отсутствием БД я не имею права применять ALTER TABLE на отдельной таблице?


 
исследователь   (2007-10-18 10:34) [9]


> Не того поля ягодка, однако :)

смеяться после слова лопата?


 
ЮЮ ©   (2007-10-18 10:42) [10]

> смеяться после слова лопата?

Ну извини. Ожидал увидеть FIELD или COLUMN, увидел POLE

В Local SQL тоже доступны только

DROP [COLUMN] | ADD [COLUMN]  

Может неспроста?


 
исследователь   (2007-10-18 10:43) [11]


> В Local SQL тоже доступны только DROP [COLUMN] | ADD [COLUMN]
>  

Это я прочел, в надежде что брехня

Вопрос - что делать? Как верно составить запрос?


 
VICTOR_   (2007-10-18 10:53) [12]


> Вопрос - что делать? Как верно составить запрос?
>

Как вариант
1. Сбросить данные во временную таблицу
2. Изменить структуру основной таблицы
3. Сбросить данные в основную таблицу
4. Удалить временную таблицу


 
ЮЮ ©   (2007-10-18 10:55) [13]

> 2. Изменить структуру основной таблицы

2.a Удалить столбец POLE
2.b Добавить столбец POLE CHAR(8)


 
исследователь   (2007-10-18 10:56) [14]


> ЮЮ ©   (18.10.07 10:55) [13]

Это я уже и сам понял. Вопрос в другом: может у меня синтаксис неверен? Напишите, плз, эти две команды.


 
Правильный_Вася   (2007-10-18 10:57) [15]

выкинуть одбц


 
исследователь   (2007-10-18 10:59) [16]


> Правильный_Вася   (18.10.07 10:57) [15]

господи, как Вы достали.


 
ЮЮ ©   (2007-10-18 11:04) [17]

Даже в MS SQL (до 6.0 или 6.5) приходилось именно так [12] изменять структуру таблиц.  

>Это я уже и сам понял. Вопрос в другом: может у меня синтаксис неверен? Напишите, плз, эти две команды.

это и в хелпе есть.
Кстати TEMP.DBF тоже гн смотрится в запросе

ALTER TABLE TEMP DROP POLE , ADD POLE CHAR(8)
или
ALTER TABLE "TEMP.DBF" DROP POLE , ADD POLE CHAR(8)


 
исследователь   (2007-10-18 11:09) [18]

Спс, сейчас попробую


 
исследователь   (2007-10-18 11:20) [19]

Хрен там!

[Microsoft][Драйвер ODBC dBASE] Ошибка синтаксиса в инструкции ALTER TABLE.


 
Правильный_Вася   (2007-10-18 11:22) [20]

ёжики плакали, но продолжали лезть на кактус

выкинь одбц!


 
исследователь   (2007-10-18 11:23) [21]

умничка.


 
Sergey13 ©   (2007-10-18 11:26) [22]

> [19] исследователь   (18.10.07 11:20)

Может таки надо добавить COLUMN?
ALTER TABLE TEMP DROP COLUMN POLE , ADD COLUMN POLE CHAR(8)


 
ЮЮ ©   (2007-10-18 11:26) [23]

> Хрен там!

Ну так покажи ту хренотень, что выполняешь :)


 
исследователь   (2007-10-18 11:30) [24]

Итак, я разбил запрос на два запроса даже - результат один. Добавил COLUMN - та же ошибка.

Лирическое отступление: в таблице поле называется TIME, но оно суть строковое и содержит инфу такого типа: 120346, что означает 12 часов три минуты 46 секунд :). Таблицы генерятся прогой, к которой я не имею никакого доступа. А вот для улучшения удобочитаемости мне необходимо пройтись по всем полям TIME и сделать время как строчку с двоеточием. Но этио не выходит, получается лишь 12:03:, то есть играет роль ограничение в 6 символов. Посему и надо мне расширить поле до 8.


 
исследователь   (2007-10-18 11:31) [25]

Хренотень, которую я выполняю:


  qr.Close;
  qr.SQL.Clear;
  qr.SQL.Add("ALTER TABLE TEMP DROP COLUMN TIME");
  qr.ExecSQL;
  // решил даже разделить для верности :)))
  qr.Close;
  qr.SQL.Clear;
  qr.SQL.Add("ALTER TABLE TEMP ADD TIME CHAR(8)");
  qr.ExecSQL;


 
Маша Шрайбер ©   (2007-10-18 11:43) [26]

А если "TIME" или [TIME] ?
Но мне не понятно, а зачем вообще этой ерундой заниматься?


 
ЮЮ ©   (2007-10-18 11:43) [27]

Посему и надо мне расширить поле до 8.

Какой смысл, если сторонняя прога будет по-прежнему писать в тои же, "неудобном" для тебя формате. Будещь постоянно бегать и менять?

А уверен, что "та прога" сможет пототм работать с измененными тобой данными?

"улучшения удобочитаемости" нужно в "той проге" или уже в твоей?


 
исследователь   (2007-10-18 11:47) [28]

С "TIME" запахало. НО вот ошибка теперь более веселая (пробовал даже с CHAR(100)) :
[Microsoft][Драйвер ODBC dBASE] Размер поля недостаточен, чтобы принять добавляемые данные.  Попробуйте вставить меньшее количество данных.


 
исследователь   (2007-10-18 11:48) [29]


> "улучшения удобочитаемости" нужно в "той проге" или уже
> в твоей?

исключительно моей. Та не берет на вход ничего, только выплевывает свою срань :)


 
Правильный_Вася   (2007-10-18 11:50) [30]


> ALTER TABLE TEMP DROP COLUMN TIME"

интересно, откуда ты возьмешь данные для нового поля?


 
исследователь   (2007-10-18 11:52) [31]


> интересно, откуда ты возьмешь данные для нового поля?

из генерирующей программы появляются на свет Божий таблицы, и происходит чудо великое: в ADOTable грузится таблица, данные с нее берутся нужные, и в TEMP.DBF пишутся. По прошествии Великого чуда Записи, отображается TEMP.DBF в грешном нашем DBGrid"е


 
ЮЮ ©   (2007-10-18 11:52) [32]

> НО вот ошибка теперь более веселая (пробовал даже с CHAR(100)
> ) :
> [Microsoft][Драйвер ODBC dBASE] Размер поля недостаточен,
> чтобы принять добавляемые данные.  Попробуйте вставить
> меньшее количество данных.


Теперь впал в другую крайность? Только ошибку даещь, без намека на то, что её вызвало :)

>исключительно моей. Та не берет на вход ничего, только выплевывает свою срань :)
Тогда оставь структуру таблицы в покое. Ничто не мешает показывать на клиенте вовсе не то, что действительно хранится в базе


 
ЮЮ ©   (2007-10-18 11:56) [33]

в ADOTable грузится таблица, данные с нее берутся нужные, и в TEMP.DBF пишутся. По прошествии Великого чуда Записи, отображается TEMP.DBF в грешном нашем DBGrid"е

Все эти чудеса можно сделать и без TEMP.DBF


 
Игорь Шевченко ©   (2007-10-18 11:56) [34]

"Когда в товарищах согласья нет, на лад их дело не пойдет"
(с) Иван Андреевич Крылов


 
Правильный_Вася   (2007-10-18 12:01) [35]

это точно
когда не ясна цель, все равно куда идти


 
исследователь   (2007-10-18 12:12) [36]

Хорошо.


with ADOTable do
 begin
   Close;
   TableName := a[i];
   //showmessage(adotable.connectionstring);
   Open;
   First;
   while not Eof do
   begin
     CutTime := Int(FieldByName("DATE").AsDateTime) +
       Frac(DBStrToTime(FieldByName("TIME").Value));
                  //showmessage(datetimetostr(cuttime));
     if (CutTime >= StartTime) and (CutTime <= EndTime) then
     begin
       tbTemp.Append;
       for j := 0 to tbTemp.Fields.Count -1 do
         tbTemp.Fields[j].Value := Fields[j].Value;
       tbTemp.Post;
     end;
     if Length(a)>1 then
      pb.Position := (i * 100) div (length(a)-1)
     else
      pb.Position:=100;
     lblPercent.Caption := IntToStr(pb.Position)+"%";
     Next;
     Application.ProcessMessages;
   end;
 end;


где a - массив с найденными по запросу пользователя файлами.

что вызвало ошибку? Те же строчки, только TIME взято в кавычки.

Как показать? Как показать в DBGrid то, что я хочу, забив на реальное содержимое поля?


 
Правильный_Вася   (2007-10-18 12:32) [37]

обработать Field.OnGetText
или
сделать CalculatedField


 
исследователь   (2007-10-18 12:37) [38]

Приведи пример


 
Правильный_Вася   (2007-10-18 12:41) [39]

справку читай


 
исследователь   (2007-10-18 12:53) [40]

Я в BDS2007 удавлюсь в хелпе


 
Правильный_Вася   (2007-10-18 12:57) [41]

другие за тебя давиться не будут


 
исследователь   (2007-10-18 13:10) [42]

Думаю, кто-нибудь, ну не ты конечно же, смогут показать, как обработать onGetText


 
исследователь   (2007-10-18 13:52) [43]

Никто ничего не знает?


 
Игорь Шевченко ©   (2007-10-18 14:51) [44]


> Я в BDS2007 удавлюсь в хелпе


Удавись, в чем проблема-то ?


 
clickmaker ©   (2007-10-18 15:01) [45]

а чегой-то многие ругают хелп БДСа? чего там такого страшного?


 
Игорь Шевченко ©   (2007-10-18 15:21) [46]


> чего там такого страшного?


Страшного там то, что его надо читать.
Страшного там то, что нет раздела "ответ на мой вопрос".


 
Anatoly Podgoretsky ©   (2007-10-18 20:30) [47]

> исследователь  (18.10.2007 10:33:08)  [8]

Имеешь конечно право, только если нет БД, то откуда возьмется таблица?


 
Anatoly Podgoretsky ©   (2007-10-18 20:33) [48]

> исследователь  (18.10.2007 11:47:28)  [28]

Выбрось ODBC


 
Anatoly Podgoretsky ©   (2007-10-18 20:34) [49]

> исследователь  (18.10.2007 11:52:31)  [31]

Для этого совсем не требуется менять структуру таблиц.


 
Anatoly Podgoretsky ©   (2007-10-18 20:36) [50]

> исследователь  (18.10.2007 12:53:40)  [40]

Тебе дали ключевое слово для поиска, а ты хочешь чтобы тебе прочитали справку, так для сведенья чтение справки вслух 100 баксов, с ударением 150


 
Германн ©   (2007-10-19 01:06) [51]


> Anatoly Podgoretsky ©   (18.10.07 20:36) [50]

А с выражением сколько?


 
Anatoly Podgoretsky ©   (2007-10-19 09:03) [52]

С выражением 183


 
clickmaker ©   (2007-10-19 10:15) [53]


> с ударением 150

а с правильным ударением?


 
Val ©   (2007-10-19 11:28) [54]

а с одесским акцентом?


 
исследователь   (2007-10-19 12:03) [55]


> Имеешь конечно право, только если нет БД, то откуда возьмется
> таблица?

сгенерирована.

> Выбрось ODBC

каким образом?

> Для этого совсем не требуется менять структуру таблиц.

а ЧТО для этого надо?


 
Маша Шрайбер ©   (2007-10-19 12:09) [56]

Второй круг?


 
Anatoly Podgoretsky ©   (2007-10-19 12:17) [57]

> Маша Шрайбер  (19.10.2007 12:09:56)  [56]

Второй акт Марлизонского балета.


 
исследователь   (2007-10-20 14:14) [58]

Удалено модератором
Примечание: А в пешее эротическое путешествие в итог пошел ты


 
DrPass ©   (2007-10-20 14:21) [59]

Целых три дня продержался. Молодца!


 
Petr V. Abramov ©   (2007-10-20 14:36) [60]

> Целых три дня продержался.
но ODBC не выкинул.


 
исследователь   (2007-10-20 15:02) [61]

Удалено модератором


 
DrPass ©   (2007-10-20 15:18) [62]


> но ODBC не выкинул

И шо характерно, пацан с сайта не уходит. Сидит, читает...


 
bcm/marksistskaya   (2007-10-20 15:41) [63]

отсюда просто так не уходят...


 
b z   (2007-10-20 15:48) [64]


> исследователь   (20.10.07 15:02) [61]

ну ненада прям про всех сразу то ...



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

Текущий архив: 2007.11.25;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.023 c
4-1179212932
tralala
2007-05-15 11:08
2007.11.25
Есть ли возможность отловить обрашение к реестру?


15-1193318137
Alex
2007-10-25 17:15
2007.11.25
Помогите настроить BDE (DBF)


15-1193398146
Cj
2007-10-26 15:29
2007.11.25
Driver Development Kit


11-1163342104
Ned
2006-11-12 17:35
2007.11.25
Отцентровать изображение


1-1189049650
Nikfel
2007-09-06 07:34
2007.11.25
Добавление пункта в системное контекстное меню эксплорера