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

Вниз

Передача данных в dbf файл   Найти похожие ветки 

 
Korefey ©   (2004-05-13 17:53) [0]

Помогите решить проблему:
Создал sql запрос, в dbGrid все отображается нормально, но когда начинаю сброс в dbf-ник, в одном поле данные не верные(не такие как в dbGrid), а в остальных все нормально. Тип поля - Integer.
Че можно сделать?


 
MU   (2004-05-13 18:15) [1]

Где код?


 
Korefey ©   (2004-05-13 18:25) [2]

Код привожу ниже...

Table1.Close;
Query1.Active:=False;
Query1.Close;
Query1.SQl.Clear;
Query1.SQl.Add("select depo26.nom_schet, depo26.zkpo, depo26.naz_schet,");
Query1.SQl.Add("depo26.Nom_Kl, depo_k.N_Dog, depo_k.FIO, depo_k.passp,");
Query1.SQl.Add("depo_k.Nom_Kart, depo_k.Nom_Schet,");
Query1.SQl.Add("depo_k.Adres, Data_Pol, depo_k.Type, depo_k.Data_Otkr,");
Query1.SQl.Add("Depozit.dateclz, Depozit.rshet");
Query1.SQl.Add("from depo26, depo_k, Depozit");
Query1.SQl.Add("where depo_k.iden_kod = depozit.okpo");
Query1.SQl.Add("and depo26.zkpo = depo_k.iden_kod");
Query1.SQl.Add("order by nom_schet");
DataSource2.DataSet:=Query1;
//DBGrid1.DataSource:=DataSource2;
Query1.ExecSQL;
Query1.Active:=True;

// Сброс инфы в depozit2
//Form3.Table2.Active:=False;
//Form3.Table2.TableName:="Depozit2.dbf";
Form3.Table2.Active:=True;
Form4.ProgressBar1.Min:=0;
Form4.ProgressBar1.Max:=Form3.Query1.Recordcount;
Form4.Visible:=True;
query1.First;
while not query1.Eof do begin
         Form3.table2.Insert;
         Form3.table2.Fields[0].AsVariant:=Form3.Query1.Fields[0].AsVariant;
         Form3.table2.Fields[1].AsInteger:=Form3.Query1.Fields[1].AsInteger;
         Form3.table2.Fields[2].AsVariant:=Form3.Query1.Fields[2].AsVariant;
         Form3.table2.Fields[3].AsVariant:=Form3.Query1.Fields[3].asvariant;
         Form3.table2.Fields[4].AsVariant:=Form3.Query1.Fields[4].asvariant;
         Form3.table2.Fields[5].AsVariant:=Form3.Query1.Fields[5].asvariant;
         Form3.table2.Fields[6].AsVariant:=Form3.Query1.Fields[6].asvariant;
         Form3.table2.Fields[7].AsVariant:=Form3.Query1.Fields[7].asvariant;
         Form3.table2.Fields[8].AsVariant:=Form3.Query1.Fields[8].asvariant;
         Form3.table2.Fields[9].AsVariant:=Form3.Query1.Fields[9].asvariant;
         Form3.table2.Fields[10].AsVariant:=Form3.Query1.Fields[10].asvariant;
         Form3.table2.Fields[11].AsVariant:=Form3.Query1.Fields[11].asvariant;
         Form3.table2.Fields[12].AsVariant:=Form3.Query1.Fields[12].asvariant;
         Form3.table2.Fields[13].AsVariant:=Form3.Query1.Fields[13].asvariant;
         Form3.table2.Fields[14].AsVariant:=Form3.Query1.Fields[14].asvariant;
         Form3.table2.Post;
         Form4.ProgressBar1.Position:=Form3.Query1.recno;
         Form3.query1.Next;
         end;
         DBGrid1.DataSource:=DataSource2;
         Form4.Visible:=False;


 
MU   (2004-05-13 19:23) [3]

А почему не написать для "неверного" поля AsInteger?


 
Korefey ©   (2004-05-13 19:59) [4]

Там так и написано на 1-ом поле(считая от 0).


 
Vlad ©   (2004-05-13 20:27) [5]

Ну посмотри ты что возвращает тебе
Form3.Query1.Fields[1].AsInteger

вставь в цикл строчку
showmessage(Form3.Query1.Fields[1].AsString)

И еще, ты бы уточнил что должно было бы туда попасть (в поле) и что попадает на самом деле


 
Korefey ©   (2004-05-13 21:40) [6]

Должно попасть ЗКПО клиента к примеру - 245147452, а попадает вообще левое число бывает что и с минусом...


 
Сергей Суровцев.   (2004-05-13 23:08) [7]

А за пределы Integer ты часом не выходишь? max 2 147 483 647.
И то, только если размерность поля позволяет.


 
Korefey ©   (2004-05-14 09:00) [8]

За пределы выхожу, так а че делать?
Какой тип использовать?


 
Anatoly Podgoretsky ©   (2004-05-14 09:04) [9]

Как чего или не выходить за пределы или использовать другие типы. В 250 грамовый стакан не налить 1 литр, не переполнив его.


 
Сергей Суровцев.   (2004-05-14 09:06) [10]

Тогда либо real (asFloat), либо храни в строковом (asString).


 
Леван   (2004-05-14 09:20) [11]

luchshe ispolzovat
table.batchmove(query,bmappend)  
vmesto posledovatelnoi obrabotki vsex polei poocheredno


 
Korefey ©   (2004-05-14 09:57) [12]

А в dbf нике какой тип?
Я ставил Char - не помогло


 
Сергей Суровцев.   (2004-05-14 10:06) [13]

>Korefey ©   (14.05.04 09:57) [12]
>А в dbf нике какой тип? Я ставил Char - не помогло

Смотря на чем остановился. Если на String, но в dbf поле должно быть строковым "C" размер 12 или больше. Тогда при записи приводишь данные к string и записываешь в поле.


 
Anatoly Podgoretsky ©   (2004-05-14 10:17) [14]

Korefey ©   (14.05.04 09:57) [12]
В dbf NUMERIC столько сколько надо, в клиенте это будет уже ftFloat


 
Korefey ©   (2004-05-14 11:03) [15]

Спасибо всем!
Получилось! Все работает нормально.


 
sniknik ©   (2004-05-14 11:33) [16]

> В dbf NUMERIC столько сколько надо
разве? вроде бы было какоето ограничение (20/19? не помню/или в разных (dBase IV/III) по разному, да похоже так)


 
Anatoly Podgoretsky ©   (2004-05-14 13:38) [17]

sniknik ©   (14.05.04 11:33) [16]
Правильно помнишь, это намного больше интегер, влазит int64
К томуже это еще и BCD, вот только Борланд потерял обработку и эмулирует ее через Double со всеми вытекающими.



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

Форум: "Базы";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.065 c
3-1084610591
Гена Васечкин
2004-05-15 12:43
2004.06.06
Как можно программно прописать DSN в ODBC для ACCESS?


14-1084925158
Serzh ml
2004-05-19 04:05
2004.06.06
(win XP) vs (win NT+9x)


3-1084646167
SeregaC
2004-05-15 22:36
2004.06.06
Сохранение БД


6-1082363520
Alex*
2004-04-19 12:32
2004.06.06
Перекодировка


4-1083263927
Dummy
2004-04-29 22:38
2004.06.06
Какой WM_* соответствует VLC овскому...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский