Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.25;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.59 MB
Время: 0.038 c
15-1193238321
@!!ex
2007-10-24 19:05
2007.11.25
Проблемы с видухой.


1-1189168940
istok
2007-09-07 16:42
2007.11.25
synchronize...


6-1174835725
Alek_1
2007-03-25 19:15
2007.11.25
Фаервол..с чего начать...??


2-1193848611
harisma
2007-10-31 19:36
2007.11.25
Позиционирование на запись в ComboBox


6-1174494739
Wolland
2007-03-21 19:32
2007.11.25
Использование TCPServer и TCPClient





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский