Find Jobs
Hire Freelancers

Delphi and DBISAM

$30-5000 USD

Ditutup
Dibuat lebih dari 19 tahun yang lalu

$30-5000 USD

Dibayar ketika dikirim
DBISAM version 4 has done away with RestructureTable and replaced it with the AlterTable function. I am having trouble implementing the new function. I like to learn by example. ## Deliverables Using the old RestructureTable function, I used something like the following ... procedure RestructureMagMedia; var ? ? TableToRestructure: TDBISAMTable; begin ? ? TableToRestructure:=[login to view URL](Application); ? ? try ? ? ? ? with TableToRestructure do begin ? ? ? ? ? ? DatabaseName := ggDatabaseName; ? ? ? ? ? ? TableName:='[login to view URL]'; ? ? ? ? ? ? Exclusive:=True; ? ? ? ? ? ? with RestructureFieldDefs do begin ? ? ? ? ? ? ? ? Clear; ? ? ? ? ? ? ? ? Add('uid',ftAutoInc,0,False,'','','','',fcNoChange,1); ? ? ? ? ? ? ? ? Add('authPerson',ftString,24,False,'','','','',fcNoChange,2); ? ? ? ? ? ? ? ? Add('fy_earned',ftDate,0,False,'','','','',fcNoChange,3); ? ? ? ? ? ? ? ? Add('fy_applies',ftDate,0,False,'','','','',fcNoChange,4); ? ? ? ? ? ? ? ? Add('gc_date',ftDate,0,False,'','','','',fcNoChange,5); ? ? ? ? ? ? ? ? Add('eAbn',ftString,13,False,'','','','',fcNoChange,6); ? ? ? ? ? ? ? ? Add('eBranchNumber',ftInteger,0,False,'','','','',fcNoChange,7); ? ? ? ? ? ? ? ? Add('eName',ftString,200,False,'','','','',fcNoChange,8); ? ? ? ? ? ? ? ? Add('eTradeAs',ftString,200,False,'','','','',fcNoChange,9); ? ? ? ? ? ? ? ? Add(etc ... ? ? ? ? ? end; ? ? ? ? ? ? with RestructureIndexDefs do begin ? ? ? ? ? ? ? ? Clear; ? ? ? ? ? ? ? ? Add('','uid',[ixPrimary,ixUnique],icNone); ? ? ? ? ? ? end; ? ? ? ? ? ? RestructureTable(0,0,0,0,True,MY_PASSWORD,'',64,-1,True); ? ? ? ? end; ? // with TableToRestructure ? ? finally ? ? ? ? [login to view URL]; ? ? end; end; ? // RestructureMagMedia When a table was initially opened, if the file structure had changed and exception would be generated, which would be caught and the above procedure would then be executed to update the structure. This worked well, because it did not matter how far behind in the upgrade process the user was, the above took care of them. With the new AlterTable, I do not seem to have the same flexibility. Let's say that ... ? FieldA was added in January 2004 FieldB was added in May 2004 FieldC was added in August 2004 Someone upgrading now may have last upgraded in March 2004, so they have FieldA, but they do not have the other 2 fields. We are upgrading hundreds of users who upgrade at different times. if I say ... [login to view URL](12,13,'FieldA',ftBCD,2,False); and the field already exists for this user, I have a problem. Even if I were able to check whether the field exists, that still means that I have to leave that checking code in there as long as there are users who may not have upgraded, which in some cases means that the code has to stay in there for years, as some users may not upgrade annually, even if they should. Can you see the problem? I need a working example that changes the structure of a table by: 1. Changing the field name of an existing record. 2. Adding a new field. 3. Adding a new index. I need it implemented in such a way the the routine can be run again, with not exception raised. This is necessary because in reality, the code has to serve many users, each at a different upgrade status (as outlined in the description). ## Platform I am using Windows XP Delphi 7 DBISAM 4 ... that is the main thing.
ID Proyek: 3458717

Tentang proyek

1 proposal
Proyek remot
Aktif 19 tahun yang lalu

Ingin menghasilkan uang?

Keuntungan menawar di Freelancer

Tentukan anggaran dan garis waktu Anda
Dapatkan bayaran atas pekerjaan Anda
Uraikan proposal Anda
Gratis mendaftar dan menawar pekerjaan
1 freelancer menawar dengan rata-rata $43 USD untuk pekerjaan ini
Avatar Pengguna
See private message.
$42,50 USD dalam 5 hari
5,0 (7 ulasan)
2,7
2,7

Tentang klien

Bendera AUSTRALIA
Australia
5,0
1
Anggota sejak Sep 17, 2002

Verifikasi Klien

Pekerjaan lain dari klien ini

Introductory Perl tuition
$30-5000 USD
Terima kasih! Kami telah mengirim Anda email untuk mengklaim kredit gratis Anda.
Anda sesuatu yang salah saat mengirimkan Anda email. Silakan coba lagi.
Pengguna Terdaftar Total Pekerjaan Terpasang
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Memuat pratinjau
Izin diberikan untuk Geolokasi.
Sesi login Anda telah kedaluwarsa dan Anda sudah keluar. Silakan login kembali.