Kopier som felter fra en tabell til Another

Hvordan kopiere data over bord. Delphi Developer
Copyright Pinnacle Publishing, Inc. Alle rettigheter reserved.Copy som felter fra en tabell til en annen Steve Zimmelman
I nesten alle applikasjoner som jeg utvikle, det kommer en tid når jeg trenger å kopiere felt fra én tabell til en annen. Carl Hewitt og jeg skrev en funksjon som heter XferFields (se Listing 1) for å gjøre det enkelt. XferFields ligner på Scatter og Samle kommandoer som finnes i FoxProÊwith unntak av at det ikke er noen minnevariabler involvert, og overføring av informasjon er gjort på de aktuelle postene ligger i kilden og målet tables.XferFields vil overføre noen felt i Kilde til noen felt av samme navn og datatype i Destination bord, og returnerer en boolsk verdi av False bare hvis alle feltene i Destination tabellen klarer å bli oppdatert. Hver gang et felt overføring forsøket mislykkes, er et heltall variabel økes. Hvis økningen teller er lik Destination tabellens FieldCount, da det antas at ingen felt ble overført og noe er galt. Du kan deretter håndtere unntak allikevel du ser passer i ditt code.A enkel bruk for XferFields kan se slik ut: Hvis XferFields (Table1, Table2) Deretter Table2.PostElse Begynn Table2.Cancel; ShowMessage ('XferFields Mislyktes!'); End; Oppføring 1. XferFields funksjon .//****************************** **************** //Funksjon XferFields //Versjon: Delphi 2.0 //Skrevet av: Carl Hewitt & Steve Zimmelman //Vil overføre noen felt i kilden til eventuelle //felt av samme navn, og skriv inn //Destination .//Hvis Destinasjon tabellen er i Browse State, //det vil bli plassert i redigerings stat og returnert //den samme veien.//****************************************** **** Funksjons XferFields (Kilde, Mål: TDataSet): boolske; Var i: Integer; nErr: Integer; f1: TField; f2: TField; Begynn //nErr brukes til å telle mislykket //feltet overføringer nErr: = 0; //Sørg Destinasjon bordet er i //Edit tilstand. If (Dest.State = dsBrowse) Deretter Dest.Edit; For i: = 0 til (Dest.FieldCount -1) Vet Begynn f1: = Dest.FindField (Dest.Fields [i] .FieldName); f2: = Source.FindField (Dest.Fields [i] .FieldName); If (f1 < > null) og (f2 < > null), og start Prøv //overføring feltverdi f1.value: = f2.value; Unntatt //Økning feil telle Inc (nErr); Slutt; Slutt; Slutt; //Hvis (nErr = Dest.FieldCount) deretter //ingen felt ble overført og //Resultatet vil være False. Resultat: = (nErr < Dest.FieldCount); End; Anmeldelser



Next Page: