View the PowerPoint presentation

advertisement
Poll: What .NET development
language are you using (or plan ...
• [Live Meeting Multiple Choice Poll. Use Live Meeting > Edit Slide
Properties... to edit.]
•
•
•
•
•
Delphi.NET
VB.NET
C#.NET
Other
Don't know
using Advantage with ADO.NET
preview
• standard ADO.NET data access techniques
• AdsExtendedReader functionality
• 4 samples in C#, VB.NET and Delphi.NET
–
–
–
–
standard components
AdsExtendedReader
seeks
record locking
.net data model
.net design issues
• limit large data reads and writes between
client and server.
• concurrency issues
• data freshness
example #1: classic ADO.NET
• AdsConnection:
cn.ConnectionString = "data source = ..\\..\\data; servertype = REMOTE |LOCAL";
• AdsCommand
SelectCmd = cn.CreateCommand();
SelectCmd.CommandText = "SELECT * FROM websites order by image_name";
da.SelectCommand = SelectCmd;
• AdsCommandBuilder
cb = new AdsCommandBuilder(da);
• AdsDataAdapter
da.Fill(ds, "websites");
Poll: Are you developing in .NET
now?
• [Live Meeting Yes/No Poll. Use Live Meeting > Edit Slide
Properties... to edit.]
• Yes
• No
View/Application Share:
example#1: BlobSample_DataSet
• [Live Meeting View/Application Share. Use Live Meeting > Edit
Slide Properties... to edit.]
DataReader vs. DataSet
• use DataReader if -– do not need to cache data
– processing large results too large to fit in memory
– need to access data once, in a forward-only and read-only manner
• conn.Open();
cmd = conn.CreateCommand();
cmd.CommandText = "select * from departments";
reader = cmd.ExecuteReader();
while ( reader.Read() )
{
for ( iField = 0; iField < reader.FieldCount; iField++ )
Console.Write( reader.GetValue(iField) + " ");
Console.WriteLine();
}
a better tool
• AdsExtendedReader
– allows record-level access to server-side
data
• set filters, set index orders, seek to specific
records, lock records, re-index, set bookmarks,
zap tables, copy tables, create indexes, read and
write to fields, set ranges
• bi-directional
Poll: Have you ever used the
Advantage .NET Data Provider?
• [Live Meeting Yes/No Poll. Use Live Meeting > Edit Slide
Properties... to edit.]
• Yes
• No
example #2: AdsDataAdapter and
AdsExtendedReader
• Execute AdsExtendedReader:
rdr = cmd.ExecuteExtendedReader(CommandBehavior.SequentialAccess)
• Set the index order:
rdr.ActiveIndex = "Image_PK“
• Seek:
rdr.Seek(New Object() {UCase(tbSearch.Text)}, _
seektype).ToString
• Read Fields:
iFieldNum = rdr.GetOrdinal("Image_File")
BLOBData = rdr.GetBytes(iFieldNum)
View/Application Share:
example#2:
BlobSample_DataReader
• [Live Meeting View/Application Share. Use Live Meeting > Edit
Slide Properties... to edit.]
example #3: AdsExtendedReader
• SeekTypes
– SoftSeek: Allows record to be found with the next higher key
value if the given key does not exist.
– HardSeek: Seeks an exact match.
– SeekLast: Seeks for the last value in an index.
– SeekGt (Greater Than): Seeks for the last value in the index.
• Partial Match
– Allows partial matching of seek value. For example, a seek on
a last name index with a value of “Smit” would fail to find “Smith”
if Partial is false, but succeed if PartialMatch is true.
View/Application Share:
example#3: Seek Example
• [Live Meeting View/Application Share. Use Live Meeting > Edit
Slide Properties... to edit.]
example #4: AdsExtendedReader
and record locking
• Concurrency issues
– Last write wins
– Data versioning algorithm
• Record Locking
rdrEditUser2 := cmdEditUser2.ExecuteExtendedReader;
rdrEditUser2.ActiveIndex := 'customer id';
rdrEditUser2.Seek([Int16.Parse(tbCustID.Text)],
AdsExtendedReader.SeekType.SoftSeek);
rdrEditUser2.LockRecord;
View/Application Share:
example#4: Recording Locking
• [Live Meeting View/Application Share. Use Live Meeting > Edit
Slide Properties... to edit.]
build a better application
• install peer-to-peer database by moving a data directory
– client application includes 4 DLL’s
– free local server DLL
– download and install application over internet with no end-user setup.
• low maintenance, hands-off install for scalable client-server
database
– runs as service
– no code change required
– 5 to 1000 users
summary
• Advantage .Net Data Provider
– Connection, AdsDataAdapter, DataReader, AdsCommand
• AdsExtendedReader
– advanced functionality
– beyond standard .net data model
• distinct advantage
– better tools
– better design
– easy install and maintenance
questions??
Advantage Database Server: The Official Guide (ISBN 0-07223084-3) is a new book, written by Cary Jensen and Loy
Anderson and published by McGraw-Hill/Osborne Media
Group, that systematically guides a developer through key
functionality of Advantage and includes a Companion CD with
code samples and a single-user license of Advantage
Database Server version 7.0.
http://www.extendedsystems.com/ADS/ADS+Book+Promo.htm
Download