Search This Blog
Sunday, October 20, 2013
The Black Toolkit 1.1 is released
The Black Toolkit 1.1 was released yesterday, containing the new Heavy Metal SQL client, supporting also Pascal sources and generating a better DAO code for JDBC Java.
Wednesday, October 16, 2013
Built-in SQL client?
The Black Toolkit 1.1 will have a fully featured, built-in SQL client, instead of just a CRUD Class importer.
The supported drivers are:
They are XML files because anyone can write a driver for other DB and connect it via ODBC.
The Black Toolkit 1.1 must be released until the end of October 2013.
- MySQL.xml
- PostgreSQL.xml
- Firebird.xml
- Oracle.xml
- SQLite3.xml
They are XML files because anyone can write a driver for other DB and connect it via ODBC.
The Black Toolkit 1.1 must be released until the end of October 2013.
Friday, October 11, 2013
The Black Toolkit 1.1 will be released soon
The Black Toolkit 1.1 will have some new improvements:
- The Java DAO will generate a more robust code. Less a bug.
- The CRUD/DAO importer will not just import from SQL, but analyze the database's objects and permit to write queries and scripts.
- It will support Pascal and it will be extensible with other programming languages.
Sunday, September 22, 2013
The Black Toolkit 1.1 will be released in October
The Black Toolkit 1.1 will be released in October, and will contain some new useful features:
- It will support extensible programming languages via XML (Kriss Engine), not just RAD forms. You just need to have a .XML extension file for it.
- It will support Pascal as this extension.
Saturday, September 21, 2013
Omega Base 1.0.6 will be released in October
That's right, Omega Base 1.0.6 will be released containing some more improvements:
- Select many documents to delete them.
- Mass import files, to documents and attachments. Files already imported are just updated and not created another attachment. (Omega Syncro).
- Send comments about documents, and send email.
- Manage the max size of attachments.
- Attachments will have version control also.
Tuesday, August 20, 2013
Omega Base 1.0.5 is released
Omega Base 1.0.5 is released today.
The new version has a new design and better scalability compared to older versions.
The new version has a new design and better scalability compared to older versions.
- Because of the new indexes, the SQL part redone, and the robust PostgreSQL engine, it now supports millions of documents without problems.
- The documents keep the groups-based security and now supports versioning: that's it, you can come back a document to any older version.
- The file keywords indexer now supports MS Office DOCX.
Thursday, July 25, 2013
The Black Toolkit 1.0.9.1 is released
The Black Toolkit 1.0.9.1 is released today.
Some of new funcionalities:
Some of new funcionalities:
- Fixed the bug of "Types.LONG" of the Java DAO.
- The Java and PHP CRUD has new functionalities:
- DAO's Query() method now supports joins.
- DAO's new Load() method to get from request ($_POST, $_GET or request.getParameterMap()).
- DAO's method component to create visual methods from CRUD.
Friday, July 5, 2013
Example loading a fixed-text file to PostgreSQL with a Stored Procedure.
"Stored Procedures are evil", "Stored Procedures do break database independency", "Do not use Stored Procedure in my enterprise".
This are some of words I hear about SPs. But you can do simple loads of data quickly.
With Stored Procedures, you can load big data quickly, (and make very fast systems also).
I will use PostgreSQL, which is a DB I can use for this.
Let's see a file...
0000023ABRAAO 09081985
0000045JOSEPH 10071997
...
The format table is:
create table employee (
ID NUMER(7)
NAME CHAR(100)
HIRE_DATE DATE --(MMDDYYYY) in file
);
A log table is:
create table log_errors (
id bigserial,
table_name varchar(100),
error_date timestamp,
line text,
message varchar(200),
constraint log_errors_pk primary key(id)
);
A staging table for the file (we'll COPY file into this):
create table temp_employee
file_line text,
id bigserial,
constraint tepk primery key(id)
);
Let's divide the SP in parts.
Part 1: Header.
CREATE OR REPLACE FUNCTION load_employees()
RETURNS boolean AS
$BODY$declare
line text;
emp employee%ROWTYPE;
begin
Part 2: Loading the data to the real table. We'll make it by the complex way: update or insert and log the bad records into log_errors.
for line in select file_line from temp_employee order by id
loop begin
emp:=null;
emp.name:=trim(substr(line,9, 100));
emp.hire_date:=to_date(substr(line,110, 8), 'MMDDYYYY');
emp.id:=substr(line, 1, 8);
update employee set
name = emp.name,
hire_date = emp.hire_date
where id = emp.id;
if not found then
insert into employee(id, name, hire_date) values
(emp.id, emp.name, emp.hire_date);
end if;
exception
when others then
insert into log_erros (table_name, error_date, line, message)
values ('employee', now(), line, 'Error');
end;
end loop;
Part 3: Cleaning records from temp_employee.
delete from temp_employee;
Part 4: SP Footer.
return true;
end;$BODY$
LANGUAGE plpgsql VOLATILE
Part 5: Call the function from psql.
bash-4.2$ cat /tmp/employee.txt|psql -h thehost db -c "copy temp_employee from stdin;select load_employees()"
If you need to run it automatically, remember to put the "Part 5" in the crond service. For Windows server, use the Task Scheduler.
This are some of words I hear about SPs. But you can do simple loads of data quickly.
With Stored Procedures, you can load big data quickly, (and make very fast systems also).
I will use PostgreSQL, which is a DB I can use for this.
Let's see a file...
0000023ABRAAO 09081985
0000045JOSEPH 10071997
...
The format table is:
create table employee (
ID NUMER(7)
NAME CHAR(100)
HIRE_DATE DATE --(MMDDYYYY) in file
);
A log table is:
create table log_errors (
id bigserial,
table_name varchar(100),
error_date timestamp,
line text,
message varchar(200),
constraint log_errors_pk primary key(id)
);
A staging table for the file (we'll COPY file into this):
create table temp_employee
file_line text,
id bigserial,
constraint tepk primery key(id)
);
Let's divide the SP in parts.
Part 1: Header.
CREATE OR REPLACE FUNCTION load_employees()
RETURNS boolean AS
$BODY$declare
line text;
emp employee%ROWTYPE;
begin
Part 2: Loading the data to the real table. We'll make it by the complex way: update or insert and log the bad records into log_errors.
for line in select file_line from temp_employee order by id
loop begin
emp:=null;
emp.name:=trim(substr(line,9, 100));
emp.hire_date:=to_date(substr(line,110, 8), 'MMDDYYYY');
emp.id:=substr(line, 1, 8);
update employee set
name = emp.name,
hire_date = emp.hire_date
where id = emp.id;
if not found then
insert into employee(id, name, hire_date) values
(emp.id, emp.name, emp.hire_date);
end if;
exception
when others then
insert into log_erros (table_name, error_date, line, message)
values ('employee', now(), line, 'Error');
end;
end loop;
Part 3: Cleaning records from temp_employee.
delete from temp_employee;
Part 4: SP Footer.
return true;
end;$BODY$
LANGUAGE plpgsql VOLATILE
Part 5: Call the function from psql.
bash-4.2$ cat /tmp/employee.txt|psql -h thehost db -c "copy temp_employee from stdin;select load_employees()"
If you need to run it automatically, remember to put the "Part 5" in the crond service. For Windows server, use the Task Scheduler.
Saturday, June 15, 2013
The Black Toolkit is no more Beta
Because the proven stability trought these 1.5 years, The Black Toolkit has lost its Beta flag in https://www.sourceforge.net/ yesterday and changed it to Production/Stable.
Next and more advanced versions maybe will receive also a Mature flag, but there´s some work to do.
Next and more advanced versions maybe will receive also a Mature flag, but there´s some work to do.
Thursday, June 13, 2013
How to use JBoss with The Black Toolkit without deploys
- With The Black Toolkit, go Configuration->Java, find and add the JSP jars to the classpath: jsp-api.jar and servlet-api.jar. They can be at JBOSS_HOME/lib, but depends of the version of JBoss.
- Start a new JSP project, and save it in JBOSS_HOME/<deploy_folder>/<your_project_name>.war. The folder name must finish with .war.
- You must change some configuration details for autodeploy. This configuration changes every version of JBoss. So check http://www.jboss.org.
- For JBoss 7 (and latest 6),you must create a empty file <your_project_name>.dodeploy in JBOSS_HOME/<deploy_folder>.
- Do not use 7.1.1.
Wednesday, June 12, 2013
How to use Apache Tomcat with The Black Toolkit without deploys
- Stop Apache Tomcat.
- Edit conf/context.xml and define <Context> to <Context reloadable="true"> just for Tomcat reload your classes automatically when compiling a .JAVA.
- Do NOT use Step 2 with production systems.
- Start Apache Tomcat.
- With The Black Toolkit, go Configuration->Java and add the JSP jars to the classpath: TOMCAT_HOME/lib/jsp-api.jar and TOMCAT_HOME/lib/servlet-api.jar.
- Start a new JSP project, and save it in TOMCAT_HOME/webapps/<your_project_name>.
- Go to WEB-INF/vform and index.vform, change and save it, you can see it in the Browser.
- Go to WEB-INF/classes, create, modify, compile classes. And note: No deploys!!
Installing SQL client libraries for Black Toolkit´s CRUD importer
Oracle:
You ´ll need to install the client libraries (OCI) for C.
Firebird:
You ´ll need to install the either ODBC driver or Firebird Server itself.
PostgreSQL:
Dirty, but works. You 'll need to download the ODBC driver (DLL, 32bits) which contains also the libpq.dll. Unpack those into Black Toolkit´s directory and it will work.
SQLite:
The same for PostgreSQL, but with the Windows binary.
MySQL:
OK, The Black Toolkit is made in Lazarus and has SQLdb' s limitations. ZeosBDO has its also.
The client library cannot be newer than version 5.1.You will need to use ODBC to avoid problems. The ODBC driver connects and extracts CRUDs without problems. But cannot see the table names and field types automatically, because of information schema.
For Linux you need to install UnixODBC and it will work the same.
Monday, June 3, 2013
The Black Toolkit 1.0.9 is released!
The Black Toolkit is released today with some new features:
- RAD support to HTML5 elements.
- Java Swing RAD Editor updated to 7.
Sunday, January 13, 2013
Subscribe to:
Posts (Atom)