idxSoft Logo
Like us on Facebook
Super Fast Software
 
Fast, Easy, Memory Based
IdxObjects Box


"Just like a database sitting in memory. Index it, sort it, without the need for a recordset."

"It figures out the field type, converts to generically typed data."

"Perfect for data conversions. Specify the input table, read it, update it, write it with OLE."

"Speed up your software with localized in-memory data."

"idxObjects are the reason DocuGrab and PicBlitz are so fast."


Overview

idxObjects are a new, revolutionary, patented way to access data locally, with or without an underlying database.
It starts with a simple concept: Use memory; it's the fastest thing around.
idxObjects use indirect addressing concepts, which, at a machine level, utilize registers rather than memory moves.
Use it for database conversions. idxObjects automatically recognize the field type and converts them to a generically typed string.
Because every field you encounter always the same format, all your data type conversion issues are solved.
Use idxObjects to simplify SQL. Store small consistent left or right join tables in memory. Access them through a binary lookup.
Replaces a recordset. Define the fields you need, specify the 'where' clause. Use idxObjects to read and then process data in memory.
A Listview is directly mapped to idxObjects. Just create a "generic setup class", perform "idxObjects.Read", then use 'Listview.Load'. 3 steps.
Both DocuGrab and PicBlitz use idxObjects for data access, sorting, indexing. It's why idxSoftware is so fast.



Sample Data
We'll take a look at a simple example, converting an employee table from Access to SQL Server. In VB .NET
Any OLE or ODBC compliant database can be used.


Step 1: Define your input table. Either copy and paste it or use a separate product, idxScout, which has a code generator.

Public Class Tab_Employee_In
         Inherits IdxObjects

Friend Shadows Enum eField As Integer
        Employee_ID                                      ' No need to specify field data type. Automatically converted to string.
        First_Name
        Last_Name
End Enum

Public Sub New() 

         For Each FieldNumber As Integer In [Enum].GetValues(GetType(eField)) Setup.AddDBField(FieldNumber) = [Enum].GetName(GetType(eField), FieldNumber)

         Next

         DB.DBFormat = dbFormat.JET
         DB.JETConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & My_DBNAME & ";Persist Security Info=False;"
         DB.TableName = "Employee"
         Setup.Close()
   


Step 2: Define your output tables. This example is simple with a one to one data relationship.


Public Class Tab_Employee_Out
         Inherits IdxObjects

Friend Shadows Enum eField As Integer
        NewEmployee_ID
        NewFull_Name
End Enum

Public Sub New() 

         For Each FieldNumber As Integer In [Enum].GetValues(GetType(eField)) Setup.AddDBField(FieldNumber) = [Enum].GetName(GetType(eField), FieldNumber)

         Next

         DB.DBFormat = dbFormat.JET
         DB.JETConnectionString = "Provider=SQLNCLI10;server=(local);database=My_SQLServer;Trusted_Connection=yes"
         DB.TableName = "NewEmployee"
         Setup.Close()
   


Step 3: Process the conversion.

Dim Tab_Employee_In as New Tab_Employee_In
Dim Tab_Employee_Out as New Tab_Employee_Out

Tab_Employee_In.Read()                      ' Reads the records from the input table.

                                                                                                         ' To see the data before processing it.
Tab_Employee_In.Listview.MyListview = frmMain.ListView1  ' Assign the listview to the Main Form
Tab_Employee_In.Listview.Load                                                 ' Load the Listview - It contains the entire table.

' Ready to create the new table

For i = 0 to Tab_Employee_In.count -1     ' Loop through the input records

        Tab_Employee_in.Index = i                ' The index is how data is accessed.

        Tab_Employee_Out.Data.Add()        ' add a new record to the output set.

' -- This may seem like a lot of typing - it's NOT - Intellisense does 90 percent of the work.

        Tab_Employee_Out.Field(Tab_Employee_Out.efield.NewEmployeeID) =
                    Tab_Employee_In.Field(Tab_Employee_In.efield.EmployeeID)

        Tab_Employee_Out.Field(Tab_Employee_Out.efield.NewFull_Name) =
                                Tab_Employee_In.Field(Tab_Employee_In.efield.First_Name)
                    & " "  & Tab_Employee_In.Field(Tab_Employee_In.efield.Last_Name) ' Write to a new field - Full Name

' all done - go on to the next record

Next


Step 4: Write out the new table, clean things up

Tab_Employee_Out.Write() ' Write to the output database. Any existing records are deleted.
                                                 ' Update and insert commands are available.


Tab_Employee_Out.Dispose
Tab_Emploee_In.Dispose

Step 5: Request more information on how idxObjects can help your IT operations.
 
Request White Paper


Copyright 2010-2012. idxSoft LLC Contact@idxSoft.com Your privacy is important. Read our privacy statement Privacy Statement