Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.09.2011, 17:56
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию ADO-> SQL

Блин уже перерыл весь интернет, ..помощи прошу редко но уже устал
проблема в следующем:
Вот код
Код:
for i:=0 to standart2.Lines.Count-1 do
begin
if standart3.Lines[i]='C' then
begin
types:='VARCHAR'+'('+standart.Lines[i]+')';
end;
if standart3.Lines[i]='D' then
begin
types:='DATE';
end;
if standart3.Lines[i]='N' then
begin
types:='FLOAT';
end;

if standart3.Lines[i]='NM' then
begin
types:='FLOAT';
end;
sqls:=sqls+standart2.Lines[i]+' '+ types +',';
end;
sqls:=copy(sqls,1,length(sqls)-1);
MyQuer.SQL.text:='Create Table DEFREESTR ('+ sqls+')';
MyQuer.ExecSQL;
Админ: Пользуемся тегами для оформления кода!

Скажите как мне явно задать поле FLOAT! к примеру (13,2)
Скажите как мне явно задать поле INT! К примеру не больше 5, если в понимани текста то типа VARCHAR(5) Заранее спасибо( У меня вылетает ошибака драйвера при устновке к примеру FLOAT(15,2)
Provider=MSDASQL.1;Password="admin";Persist Security Info=True;Data Source=Файлы dBASE;Initial Catalog=E:\RM_Client\files\data
БАза DBase естесно..... прошу помощи как мне это оргнизовать (подключено через ADO)

Последний раз редактировалось Admin, 11.09.2011 в 18:03.
Ответить с цитированием
  #2  
Старый 11.09.2011, 19:29
Кодер Кодер вне форума
Активный
 
Регистрация: 25.02.2008
Сообщения: 395
Репутация: -599
По умолчанию

А разве в самой базе данных ты править это не можешь?
Ответить с цитированием
  #3  
Старый 11.09.2011, 19:53
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Цитата:
Сообщение от Неподарок
А разве в самой базе данных ты править это не можешь?
Я новичок в Делфи, 3 дня стажа,с суть программы состоит в том что по данным из 3 текствоых файлов строится таблица, 3 тхт файла содержат данные Ширины Типа и Имени поля, данные должны редкатироватся, суть в том что я не могу взять и создать вручную таблицу(что просто), мне необходимо оформить это кодом, и конкретно dbf причиной стало только точность для Float и "Разрядности" Integer я не прошу переделать код, подскажите 2-3 строчками для наглядности и изучения синтаксиса, чесно я перерыл уже много но за 1 раз все не обмазгуешь.
Если есть возможность при создании таблицы эти данные ввести то как напишите 1 запрос я дальше сам разберусь=)
Ответить с цитированием
  #4  
Старый 11.09.2011, 20:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,094
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

читаем книжку по SQL
FLOAT(N,M) = NUMERIC(N,M)
INTEGER(N) = NUMBER(N)
Ответить с цитированием
  #5  
Старый 11.09.2011, 20:05
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
читаем книжку по SQL
FLOAT(N,M) = NUMERIC(N,M)
INTEGER(N) = NUMBER(N)
При таком написани ошибка выскакивает
Ответить с цитированием
  #6  
Старый 11.09.2011, 20:09
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

[Microsoft] [Драйвер ODBC dBase ]Ошибка синтаксиса в инструкции Create Table
Вот сиия ошибка при составлении запроса Float(1,2) пробывал и Float(1.2)
Ответить с цитированием
  #7  
Старый 11.09.2011, 20:10
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

При написании просто Float таблица создается только точность по умолчанию 20,5 ставится а мне необходимо 15,2
Ответить с цитированием
  #8  
Старый 12.09.2011, 06:45
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию Кхм

Уважаемые експерты мне помогут или тут всех шлют изучать SQL?
Ответить с цитированием
  #9  
Старый 12.09.2011, 08:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,094
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Heneken
Уважаемые експерты мне помогут или тут всех шлют изучать SQL?

Вообще-то вопросы такого уровня решаются самостоятельно.
Естественно, никто на вскидку типы MS SQL не помнит.

ЗЫ. Я вообще-то писал соответствие типов, а не готовую конструкцию.

http://msdn.microsoft.com/en-us/library/ms187746.aspx
Ответить с цитированием
  #10  
Старый 12.09.2011, 09:06
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Вообще-то вопросы такого уровня решаются самостоятельно.
Естественно, никто на вскидку типы MS SQL не помнит.

ЗЫ. Я вообще-то писал соответствие типов, а не готовую конструкцию.

http://msdn.microsoft.com/en-us/library/ms187746.aspx
Я вижу что это просто но при стоставлении SQL запроса такого вида ошибка вылетает все равно
decimal[ (p[ ,s] )] and numeric[ (p[ ,s] )]
Или может я чего то недопонимаю, но тем не менее
Ответить с цитированием
  #11  
Старый 13.09.2011, 19:38
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Я уже весь интернет перерыл...
Код:
types:='FLOAT';
end;
sqls:=sqls+standart2.Lines[i]+' '+ types +',';
end;
sqls:=copy(sqls,1,length(sqls)-1);
MyQuer.SQL.text:='Create Table DEFREESTR ('+ sqls+')';
MyQuer.ExecSQL;
данная конструкция не выдает ошибку
Я помоему для новичков написал, судя по прошлыи разумениям это элементарно, но мне конкретно никто не оветил в чем проблема синтаксиса при написании
types:='FLOAT(12,1)'; или types:='FLOAT(12.1)'; Или types:='FLOAT([12.1])'; и еще много ИЛИ и много NUMERIC/FLOAT
короче все перепробывал
если коротко и с пояснениями:
1. SQL ЗАПРОС СОЗДАЮ ТАБЛИЦУ С ИМЕНЕМ DEFREESTR
MyQuer.SQL.text:='Create Table DEFREESTR'
2. Поясняю дальше создабю ту же таблицу и создаю в ней поле с именем POLE
MyQuer.SQL.text:='Create Table DEFREESTR (POLE'
3.Поясняю еще дальше создаю таблицу с именем DEFREESTR полем POLE и прсваиваю этому полю тип FLOAT
MyQuer.SQL.text:='Create Table DEFREESTR (POLE FLOAT)'
На а теперь финиш! ТОЧНОЧТЬ КАК УСТАНОВИТЬ МНЕ? ВАРИАНТЫ FLOAT(12,2) и все что мне написали выдает ошибку! ДА МНЕ НАДО ИЗУЧАТЬ SQL
Но изучение SQL проходит по мере исправления ошибок, я написал уже половину проги адекватно работающую, но встал на ТИПЕ! Мне кинуться в изучение SQL или проще спросить у людей кто знает? Помоем проще спросить, ибо проблема в синтаксисе а не в логике.
И последняя логика если это элементарно, то я думаю 1 строчку кода написать не составит труда тому кто понимает больше меня!

Последний раз редактировалось Heneken, 13.09.2011 в 20:20.
Ответить с цитированием
  #12  
Старый 15.09.2011, 19:40
Heneken Heneken вне форума
Новичок
 
Регистрация: 11.09.2011
Сообщения: 73
Версия Delphi: Delphi XE6
Репутация: 10
По умолчанию

Закрывайте тему
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025