This document provides release notes and supplementary information for Delphi 7. It notes that some components have been deprecated and recommends newer alternatives. It also describes changes made to string handling functions, warnings added by the compiler, and issues fixed in streaming of subcomponents. Finally, it provides notes on various other topics like Apache, UDDI, Windows XP input, and databases.
The notes covers the topic THE CLR AND THE .NET FRAMEWORK in C#.net
You will learn about creating assemblies and strong names for them
in CLR via C#. More specifically, you will learn about:
Defining Assemblies
Differentiate the Assembly Types
Creating Strong names
Creating an assembly cache
Working with Directories
Installing Assemblies
Signing into an Assembly
Configuring the assembly
Tamper resistant assemblies
Resolving an assembly reference
Explaining the process of locating and binding assembles
Advanced SQL injection to operating system full control (short version)Bernardo Damele A. G.
Over ten years have passed since a famous hacker coined the term "SQL injection" and it is still considered one of the major web application threats, affecting over 70% of web application on the Net. A lot has been said on this specific vulnerability, but not all of the aspects and implications have been uncovered, yet.
These slides have been presented at EUSecWest conference in London on May 28, 2009.
Full version presented at Black Hat Europe 2009 Conference, slides available here, http://www.slideshare.net/inquis/advanced-sql-injection-to-operating-system-full-control-slides.
The Drizzle Project is a fork of the MySQL 6.0 server. One of the many goals of Drizzle is to enable a large plugin ecosystem by improving, simplifying, and modernizing the application programming interfaces between the kernel and the modules providing services for Drizzle. This tutorial serves to showcase the new APIs for Drizzle's replication through a series of in-depth examples.
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Alan Pinstein
Talk given at CodeWorks PHP Conference in Atlanta on 9/29/2009.
Covers MP "migrations for php" project as well as other best-practices for managing database migrations for PHP projects.
The notes covers the topic THE CLR AND THE .NET FRAMEWORK in C#.net
You will learn about creating assemblies and strong names for them
in CLR via C#. More specifically, you will learn about:
Defining Assemblies
Differentiate the Assembly Types
Creating Strong names
Creating an assembly cache
Working with Directories
Installing Assemblies
Signing into an Assembly
Configuring the assembly
Tamper resistant assemblies
Resolving an assembly reference
Explaining the process of locating and binding assembles
Advanced SQL injection to operating system full control (short version)Bernardo Damele A. G.
Over ten years have passed since a famous hacker coined the term "SQL injection" and it is still considered one of the major web application threats, affecting over 70% of web application on the Net. A lot has been said on this specific vulnerability, but not all of the aspects and implications have been uncovered, yet.
These slides have been presented at EUSecWest conference in London on May 28, 2009.
Full version presented at Black Hat Europe 2009 Conference, slides available here, http://www.slideshare.net/inquis/advanced-sql-injection-to-operating-system-full-control-slides.
The Drizzle Project is a fork of the MySQL 6.0 server. One of the many goals of Drizzle is to enable a large plugin ecosystem by improving, simplifying, and modernizing the application programming interfaces between the kernel and the modules providing services for Drizzle. This tutorial serves to showcase the new APIs for Drizzle's replication through a series of in-depth examples.
Patterns and Tools for Database Versioning, Migration, Data Loading and Test ...Alan Pinstein
Talk given at CodeWorks PHP Conference in Atlanta on 9/29/2009.
Covers MP "migrations for php" project as well as other best-practices for managing database migrations for PHP projects.
Advanced SQL injection to operating system full control (whitepaper)Bernardo Damele A. G.
Over ten years have passed since a famous hacker coined the term "SQL injection" and it is still considered one of the major web application threats, affecting over 70% of web application on the Net. A lot has been said on this specific vulnerability, but not all of the aspects and implications have been uncovered, yet.
It's time to explore new ways to get complete control over the database management system's underlying operating system through a SQL injection vulnerability in those over-looked and theoretically not exploitable scenarios: From the command execution on MySQL and PostgreSQL to a stored procedure's buffer overflow exploitation on Microsoft SQL Server. These and much more will be unveiled and demonstrated with my own tool's new version that I will release at the Conference (http://www.blackhat.com/html/bh-europe-09/bh-eu-09-speakers.html#Damele).
This article deals with creation, utilization and handling of Visual Studio commands in its extension modules through automation object model APIs and IDE services. The relations between IDE commands and environment UI elements, such as user menus and toolbars, will also be examined.
Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets.
invokedynamic for Mere Mortals [Code One 2019]David Buck
The invokedynamic instruction (part of JSR 292) has been around since JDK7. Despite its importance to most languages that run on the JVM, many developers still do not understand how it is used or implemented. Most resources available about JSR 292 are aimed at language implementers who are experts in compiler theory and language design. This session is different, offering an overview of JSR 292 for people who are curious about how things work but do not necessarily spend all day working on java bytecode. This update of the speaker’s 2015 session on the same topic has been updated to include new uses and related changes since Java 8.
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]David Buck
With the recent open-sourcing of JDK Mission Control, there is even more interest in Java Mission Control and Java Flight Recorder than ever. A lot has changed, but these tools still remain on the forefront of debugging and troubleshooting Java issues, both during development and in production. This session covers these recent changes, migrating from earlier versions, and what the JDK Mission Control community’s plans are for the future.
This Contains Core Java Java Basic Notes With Examples Following Are the topics I have Included in this
1. Source Code
2. Byte Code
3. Native Code
4. Compiler
5. Interpreter
6. JIT Compiler (Just In Time Compiler)
7. JVM (Java Virtual Machine)
8. JRE (Java Runtime Environment)
9. JDK (Java Development Kit)
Java Language:-
1. Character Set
2. Data Types
3. Keywords
4. Identifiers or User Defined words
5. Variables
6. Constants
7. Literals
8. Control Statement
9. Operator
10. Array
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...David Buck
Although many crashes are caused by issues that are internal to the JVM itself, there are a surprising number of other causes of JVM crashes that developers and system administrators can identify and resolve on their own. Even when a crash is the result of a bug within the JVM itself, there are often steps you can take to help identify and work around most issues. This session explores the most common causes of JVM crashes and how to identify them and get back up and running as soon as possible.
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]David Buck
This session continues the speaker’s investigation of concurrent programming in Java, with a strong emphasis on the implementation side. You’ll see how the JVM supports both the Java Concurrency API and the Java Memory Model. For example, you’ll learn how Java language-level constructs such as the “volatile” keyword change the way the JVM accesses memory across a variety of CPUs. After this session, you should have a more intuitive sense of why the Java Memory Memory Model imposes the restrictions it does. This is an update to the speaker’s 2016 session of the same name.
Analysis of merge requests in GitLab using PVS-Studio for C#Andrey Karpov
Do you like GitLab and don't like bugs? Do you want to improve the quality of your source code? Then you've come to the right place. Today we will tell you how to configure the PVS-Studio C# analyzer for checking merge requests. Enjoy the reading and have a nice unicorn mood.
DLL Tutor
Typically, a DLL provides one or more particular functions and a program accesses the functions by creating either a static or dynamic link to the DLL.
Firebird 3: provider-based architecture, plugins and OO approach to API Mind The Firebird
This session will be devoted to the architecture of Firebird 3:
The Interface-based API of plugins, and its configuration (which can be done separately for each database)
OSRI (Open Systems Relational Interface) implementation with plugins (more details about OSRI)
Non-SQL stored procedures and triggers with plugins
Safe passwords and network encryption
Trace plugin and more
Who would be interested in this topic?
The plugins API in Firebird 3 is designed to significantly improve the capabilities of embedding external code.
There will be areas of extension which will allow the following:
external triggers and procedures (written in almost any programming language)
custom trace plugins
security plugins to implement custom users identification (biometrics, etc)
traffic encryption using algorithms others than SHA1 and RC4
Special attention will be devoted to non-standard providers, such as bridges to external (non-Firebird) databases or ODBC connection and caching abilities.
Advanced SQL injection to operating system full control (whitepaper)Bernardo Damele A. G.
Over ten years have passed since a famous hacker coined the term "SQL injection" and it is still considered one of the major web application threats, affecting over 70% of web application on the Net. A lot has been said on this specific vulnerability, but not all of the aspects and implications have been uncovered, yet.
It's time to explore new ways to get complete control over the database management system's underlying operating system through a SQL injection vulnerability in those over-looked and theoretically not exploitable scenarios: From the command execution on MySQL and PostgreSQL to a stored procedure's buffer overflow exploitation on Microsoft SQL Server. These and much more will be unveiled and demonstrated with my own tool's new version that I will release at the Conference (http://www.blackhat.com/html/bh-europe-09/bh-eu-09-speakers.html#Damele).
This article deals with creation, utilization and handling of Visual Studio commands in its extension modules through automation object model APIs and IDE services. The relations between IDE commands and environment UI elements, such as user menus and toolbars, will also be examined.
Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets.
invokedynamic for Mere Mortals [Code One 2019]David Buck
The invokedynamic instruction (part of JSR 292) has been around since JDK7. Despite its importance to most languages that run on the JVM, many developers still do not understand how it is used or implemented. Most resources available about JSR 292 are aimed at language implementers who are experts in compiler theory and language design. This session is different, offering an overview of JSR 292 for people who are curious about how things work but do not necessarily spend all day working on java bytecode. This update of the speaker’s 2015 session on the same topic has been updated to include new uses and related changes since Java 8.
JDK Mission Control: Where We Are, Where We Are Going [Code One 2019]David Buck
With the recent open-sourcing of JDK Mission Control, there is even more interest in Java Mission Control and Java Flight Recorder than ever. A lot has changed, but these tools still remain on the forefront of debugging and troubleshooting Java issues, both during development and in production. This session covers these recent changes, migrating from earlier versions, and what the JDK Mission Control community’s plans are for the future.
This Contains Core Java Java Basic Notes With Examples Following Are the topics I have Included in this
1. Source Code
2. Byte Code
3. Native Code
4. Compiler
5. Interpreter
6. JIT Compiler (Just In Time Compiler)
7. JVM (Java Virtual Machine)
8. JRE (Java Runtime Environment)
9. JDK (Java Development Kit)
Java Language:-
1. Character Set
2. Data Types
3. Keywords
4. Identifiers or User Defined words
5. Variables
6. Constants
7. Literals
8. Control Statement
9. Operator
10. Array
CSI (Crash Scene Investigation) HotSpot: Common JVM Crash Causes and Solution...David Buck
Although many crashes are caused by issues that are internal to the JVM itself, there are a surprising number of other causes of JVM crashes that developers and system administrators can identify and resolve on their own. Even when a crash is the result of a bug within the JVM itself, there are often steps you can take to help identify and work around most issues. This session explores the most common causes of JVM crashes and how to identify them and get back up and running as soon as possible.
Java Concurrency, A(nother) Peek Under the Hood [Code One 2019]David Buck
This session continues the speaker’s investigation of concurrent programming in Java, with a strong emphasis on the implementation side. You’ll see how the JVM supports both the Java Concurrency API and the Java Memory Model. For example, you’ll learn how Java language-level constructs such as the “volatile” keyword change the way the JVM accesses memory across a variety of CPUs. After this session, you should have a more intuitive sense of why the Java Memory Memory Model imposes the restrictions it does. This is an update to the speaker’s 2016 session of the same name.
Analysis of merge requests in GitLab using PVS-Studio for C#Andrey Karpov
Do you like GitLab and don't like bugs? Do you want to improve the quality of your source code? Then you've come to the right place. Today we will tell you how to configure the PVS-Studio C# analyzer for checking merge requests. Enjoy the reading and have a nice unicorn mood.
DLL Tutor
Typically, a DLL provides one or more particular functions and a program accesses the functions by creating either a static or dynamic link to the DLL.
Firebird 3: provider-based architecture, plugins and OO approach to API Mind The Firebird
This session will be devoted to the architecture of Firebird 3:
The Interface-based API of plugins, and its configuration (which can be done separately for each database)
OSRI (Open Systems Relational Interface) implementation with plugins (more details about OSRI)
Non-SQL stored procedures and triggers with plugins
Safe passwords and network encryption
Trace plugin and more
Who would be interested in this topic?
The plugins API in Firebird 3 is designed to significantly improve the capabilities of embedding external code.
There will be areas of extension which will allow the following:
external triggers and procedures (written in almost any programming language)
custom trace plugins
security plugins to implement custom users identification (biometrics, etc)
traffic encryption using algorithms others than SHA1 and RC4
Special attention will be devoted to non-standard providers, such as bridges to external (non-Firebird) databases or ODBC connection and caching abilities.
So, you know how to deploy your code, what about your database? This talk will go through deploying your database with LiquiBase and DBDeploy a non-framework based approach to handling migrations of DDL and DML.
Retail Analytics, with Oracle Data Integrator 11G.
Points about ODI Objects, Interfaces, Variables, Packages, Scenarios, Load Plans, Scheduling.
Batch Scheduling with RA 14.2, UAF in 14.2, Error Managment in RA 14.2
asp.net using c# notes sem 5 ( we-it tutorials ).
Review of .NET frameworks, Introduction to C#, Variables and expressions, flow controls, functions, debugging and error handling, OOPs with C#, Defining classes and class members.
Assembly, Components of Assembly, Private and Shared Assembly, Garbage Collector, JIT compiler. Namespaces Collections, Delegates and Events. Introduction to ASP.NET 4: Microsoft.NET framework, ASP.NET lifecycle. CSS: Need of CSS, Introduction to CSS, Working with CSS with visual developer.
ASP.NET server controls: Introduction, How to work with button controls, Textboxes, Labels, checkboxes and radio buttons, list controls and other web server controls, web.config and global.asax files. Programming ASP.NET web pages: Introduction, data types and variables, statements, organizing code, object oriented basics.
Validation Control: Introduction, basic validation controls, validation techniques, using advanced validation controls. State Management: Using view state, using session state, using application state, using cookies and URL encoding. Master Pages: Creating master pages, content pages, nesting master pages, accessing master page controls from a content page. Navigation: Introduction to use the site navigation, using site navigation controls.
Databases: Introduction, using SQL data sources, GridView Control, DetailsView and FormView Controls, ListView and DataPager controls, Using object datasources. ASP.NET Security: Authentication, Authorization, Impersonation, ASP.NET provider model
LINQ: Operators, implementations, LINQ to objects,XML,ADO.NET, Query Syntax. ASP.NET Ajax: Introducing AJAX, Working of AJAX, Using ASP.NET AJAX
server controls. JQuery: Introduction to JQuery, JQuery UI Library, Working of JQuery
I am explaining how to connect to Borland StarTeam Version Control System programmatically using C# console application and checkout files to local machine.
Continuous integration, delivery, and deployment (CICD) is widely
used in DevOps communities, as it allows for teams of all sizes to
deploy rapidly-changing hardware and software resources quickly
and confidently.
Writing NodeJS applications is an easy task for JavaScript developers. However, getting what is happening under the hood in NodeJS may be intimidating, but understanding it is vital for web developers.
Indeed, when you try to learn NodeJS, most tutorials are about the NodeJS ecosystem like Express, Socket.IO, PassportJS. It is really rare to see some tutorials about the NodeJS runtime itself.
By this meetup, I want to spot the light on some advanced NodeJS topics so as to help developers answering questions an experienced NodeJS developer is expected to answer. Understanding these topics is essential to make you a much more desirable developer. I want to explore several topics including the famous event-loop along with NodeJS Module Patterns and how dependencies actually work in NodeJS.
I hope that this meetup would help you to be more comfortable understanding advanced code written in NodeJS.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
1. Delphi 7
Release Notes
=======================================================
This file contains important supplementary and late-
breaking information that may not appear in the main
product documentation. We recommend that you read this
file in its entirety.
For information on new features in this release, choose
"What's New" in the online Help contents.
=======================================================
CONTENTS
* OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT
* NOTES AND ISSUES:
* ABOUT EDITING THE REGISTRY
* PRODUCT INFORMATION ON THE WEB
=======================================================
OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT
* INSTALL contains system requirements and product
installation information.
* DEPLOY contains information about redistributing your
applications.
* LICENSE contains information on licensing allowances
and limitations for this product and other Borland
software that is bundled with it.
The three files listed above, along with this file,
are installed in your main product directory
(default: C:Program FilesBorlandDelphi7).
=======================================================
NOTES AND ISSUES
Deprecated Components
Borland is deprecating the use of TSQLClientDataSet
and TBDEClientDataSet. Borland recommends that you
use TSimpleDataSet for simple, two-tier
applications. TSQLClientDataSet and
TBDEClientDataSet are no longer displayed on the
Component palette. If you require backward
compatibility, you can still access
TSQLClientDataSet and TBDEClientDataSet in the
Demos directory (by default, C:Program
FilesBorlandDelphi7Demos).
2. Borland is deprecating the use of the TServerSocket
and TClientSocket from the unit ScktComp. It is
recommended that you use the Indy components for
socket operations. The TServerSocket and
TClientSocket will no longer be installed on the
component palette by default. If you require the
use of these components then you can install
the design time package named dclsockets70.bpl,
found in your bin directory. For deployment with
runtime packages, you will need to deploy rtl70.bpl
and any other required packages.
Changes in StrUtils
-------------------
The StrUtils unit contains three sets of changes, all
relating to
multi-byte character set (MBCS) support.
* Previously, LeftStr, RightStr, and MidStr each
took and returned AnsiString values, and did not
support MBCS strings. Each of these functions has
been replaced by a pair of overloaded functions,
one that takes and returns AnsiString, and one
that takes and returns WideString. The new
functions correctly handle MBCS strings. This
change breaks code that uses these functions to
store and retrieve byte values in AnsiStrings.
Such code should use the new byte-level functions
described below.
* New functions LeftBStr, RightBStr, and MidBStr
provide the byte-level manipulation previously
provided by LeftStr, RightStr, and MidStr.
* New functions AnsiLeftStr, AnsiRightStr, and
AnsiMidStr are the same as the new AnsiStr
LeftStr, RightStr, and MidStr functions, except
that they are not overloaded with equivalent
WideString functions.
XP Themes
---------
This build does not include a manifest for your
projects. To tell your applications to use version 6.0
of comctl32.dll you need to create and edit the
manifest yourself.
There are two ways to do this:
1. With a stand-alone manifest file added to the same
directory of the executable.
3. 2. With a manifest included in the executable as a
resource.
For the stand-alone manifest follow these steps:
I) Using Notepad create a file called
"Project1.exe.manifest" and add the following lines:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="*"
version="1.0.0.0"
type="win32"
name="Project1"/>
<description>Project1 Description</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*" />
</dependentAssembly>
</dependency>
</assembly>
II) Save the file and place it in the same directory as
the application executable.
If you don't like the idea of having the manifest as a
separated file you can include it into your executable
as a resource.
I) Create a resource file (again using Notepad)
containing the following line:
1 24 "Project1.exe.Manifest"
II) Compile the resource file with brcc32.exe with the
following command:
C:Project1> brcc32 WindowsXP.RC
III) Now add the following line to your project's main
form:
{$R WindowsXP.RES}
NOTE: To automatically configure XP Themes in your
project you can use the XP Application Wizard
demo. For more information see the readme file in
4. DemosToolsAPIXPAppWiz
.NET compiler warnings
----------------------
The Delphi 7 dcc32 compiler now supports three
additional compiler warnings: Unsafe_Type,
Unsafe_Code, and Unsafe_Cast. These warnings are
disabled by default, but can be enabled with source
code compiler directives {$WARN UNSAFE_CODE ON},
compiler command line switches (dcc32 -W+UNSAFE_CODE),
and in Project|Options.
NOTE: There is no space before or after the "+" in the
command line switch)
"Unsafe" in all three messages refers to types or
operations which static code analysis cannot prove to
not overwrite memory. For example, data types that
carry bounds information at runtime such as Delphi
Strings or dynamic arrays can be bounds-checked at
runtime, and tracked in static analysis, to ensure that
memory accesses are within the limits of the allocated
data. Data types that do not carry bounds information
at compile time or runtime (such as PChar) cannot be
proven safe. Unsafe doesn't necessarily mean the code
is broken or flawed, it simply means that it uses
programming techniques that cannot be verified as safe
by static code analysis. In a secured execution
environment such as .NET, such code is assumed to be
unsafe and a potential security risk.
Delphi 7 developers can use these new warnings to
identify data types, code or programming techniques
that may be difficult to port to a managed code
environment such as .NET. These messages are not
specific to the .NET platform. The warnings are
conservative - some things we warn about in D7 we might
actually be able to support in Delphi for .NET, but
we're not sure yet. The warnings are not complete -
there may be problematic types or code situations for
which the Delphi 7 compiler does not issue an unsafe
warning.
Unsafe_Type: Types such as PChar, untyped pointer,
untyped var and out parameters, file of <type>, 6 byte
reals (Real48), variant records (records containing
overlapping fields) and old-style objects
("TMyObject = object").
* "old" object type
c = object
i: Integer;
5. procedure p;
end;
Unsafe_Code: absolute variables, Addr(), Ptr(), Hi(),
Lo(), Swap() standard procedures, BlockRead and
BlockWrite, the Fail() standard procedure, GetMem(),
FreeMem(), and ReallocMem()
* inline assembler blocks (asm end)
* @ operator
* modifying string index elements, e.g
s := 'Hoho';
s[2] := 'a'; // <-- "Unsafe code 'String index to
var param'"
Unsafe_Cast: Casting an object instance to a type that
is not an ancestor or descendent of the instance type,
casting a record type to anything else
Change to VCL SubComponents streaming
-------------------------------------
In Delphi 7, we corrected a problem where the csLoading
flag was never set for subcomponents, nor was the
subcomponent's Loaded method called. When a component that
has subcomponents is streamed, the subcomponents will have
their csLoading flag set and their Loaded method called.
This change creates a complication for any subcomponent
properties that are writable. If you allow your
subcomponent property to be assigned to an external
component reference then you cannot free your subcomponent
until it's owner's Loaded method is called otherwise the
streaming system will attempt to call the subcomponent's
Loaded method after the subcomponent has been freed.
Apache
------
Support for Apache 2 is for the 2.0.39 version. It will
work with later versions as long as they are binary
compatible.
NOTE: Due to a known bug with Apache 1.3.22, do not
develop CGI programs or shared objects for this
version.
See http://bugs.apache.org/index.cgi/full/8538
UDDI Registry entries
---------------------
Some UDDI Registry entries contain an Accesspoint URL with
a bookmark tag at the end. When accessed these services
often generate the error message 'Method not allowed
6. (405)'.
Workaround:
Remove the tag from url in the global function
that returns the Interface:
const
// defURL = 'http://someservice/somewhere#tag';
// is changed to
defURL = 'http://someservice/somewhere';
Japanese Input system on Windows XP
-----------------------------------
The MS IME2002 Japanese input system included with
Windows XP can cause the Debugger in the IDE to
stall.
Workaround:
Remove Microsoft IME Character Code Dictionary from
your system dictionaries list. Simply un-checking this
option from the dictionary list will not solve the
problem. To remove this dictionary:
1) Open the IME Toolbar.
2) Select Tools|Properties and click on the Dictionary
tab.
3) Select "Microsoft IME Character Code Dictionary"
from the System dictionaries listbox
4) Click Remove.
Database
--------
* The provided DB2 driver is certified for DB2 version
7 only. The client version and server version must
match. BDE also supports DB2 version 7 only.
* The Oracle driver provided for dbExpress components
is certified for Oracle 9i. BDE and ADO have been
certified with Oracle 8.1.7 and 8.1.6. In all cases,
the client version and server version must be the
same.
* Oracle 9i types - ORACLE 9i types TIMESTAMP
(introduced for JDK 1.3.1 compliance) and other types
like XMLType, Temp tables, etc. are not yet
supported. Use "DATE" instead.
* The Borland Database Engine CAB file (BDEINST.CAB) is
no longer digitally signed. This CAB file is provided
for backward compatibility. For new applications, we
recommend deploying BDE with the BDE merge modules.
7. InterBase version support, Dialect 3 features
---------------------------------------------
Delphi 7 supports InterBase 6.5. The client version and
server version must be the same.
Currently, the driver does not support the ARRAY type.
To use the new InterBase 6.5 Dialect 3 features in BDE,
add an entry to your Windows registry under
HKEY_LOCAL_MACHINESOFTWAREBorlandDatabase Engine
SettingsDriversIntrbaseDb OpenSQLDIALECT
and set the String Value to "3".
When an InterBase alias is created, the new entry will
be available in the .CFG file.
To use InterBase 5.6, SQLDIALECT can be set to "1"
(existing IB aliases which do not have the SQLDIALECT
entry default to SQLDIALECT=1 or to the registry
setting when the SQLDIALECT entry is added to the
registry).
InterBase 6.5 implementation note
---------------------------------
If you are using a WebSnap application with InterBase
6.5, a local database connection is not recommended.
Instead, use a client/server connection specified by a
protocol-specific prefix to the path to the database.
Examples:
Local connection (not recommended):
C:PathToDatabaseDBName.gdb
TCP/IP connection on Windows:
saturn:C:PathToDatabaseDBName.gdb
TCP/IP connection on UNIX:
jupiter:/usr/PathTo/Database/DBName.gdb
NetBEUI connection:
venusC:PathToDatabaseDBName.gdb
IPX/SPX connection:
mars@vol2:PathToDatabaseDBName.gdb
If the WebSnap application is on the same machine as
the server, you can use localhost:
localhost:C:PathToDatabaseDBName.gdb
8. INTERBASE driver behavioral difference:
---------------------------------------
NUMERIC data type mapping.
The dbExpress driver for INTERBASE now maps NUMERIC
data types to fldBCD instead of fldINT16, fldINT32,
fldFLOAT.
dbExpress
---------
TSQLDataSet now has DefaultRowsetSize = 20 (Oracle
only). To use a different RowSetSize, add the
RowSetSize property manually (e.g., "RowsetSize = 200")
into dbxconnections.ini, for existing connections, or
into dbxdrivers.ini to have the RowSetSize property
included in new connections. RowsetSize can also be
modified in code, as shown here:
"SQLConnection1.Params.Values['RowsetSize'] :=
'200'"
dbExpress now includes MySQL 3.23.49 support with a new
driver (dbexpmysql.dll). To use the new driver, specify
LibraryName = "dbexpmysql.dll"
in the Object Inspector or in dbxdrivers.ini.
dbExpress components and MySQL transactions
-------------------------------------------
MySQL doesn't support more than one active statement
per connection. To perform multiple SQL requests with a
single TSQLConnection the dbExpress components clone
connection. There is a bug in maintaining state
information on the no.of active statements with respect
to a TSQLConnection. This might cause serious failures
in transaction as the transaction might be started on
one connection and commit or rollback might be
happening on another connection.
Workaround:
Before you start a MySQL transaction make sure
TSQLConnection.ActiveStatements is 0. If it's not 0 then
close the TSQLConnection and reopen it and that should
clear it. All your transaction activity should then go
on a single connection.
DB2 notes for dbExpress
9. -----------------------
The provided DB2 driver is certified for DB2 version 7.
The client version and server version must be the
same. BDE also supports DB2 version 7.
Because of a known DB2 bug, the DB2 client returns only
one record at a time when a request for a block fetch
is made, even with RowsetSize option > 1.
Timestamp issues
----------------
The dbExpress DB2 driver rounds the TIMESTAMP
fractional value and there could be some precision lost
depending upon the data retrieved. When you apply back
changes the old value will not match the one on the
server and ApplyUpdates() will fail.
Workaround:
Make sure DB2 TIMESTAMP is not part of indexed columns
and set the DataSetProvider Update mode to WhereKey
instead of WhereAll.
Informix BLOB/CLOB fields (dbExpress)
-------------------------------------
A new global variable, InformixLob, is available to
allow you to work with Informix BLOB and CLOB fields.
The variable is required because Informix BLOB
(fldBLOB, fldstHBINARY) and CLOB (fldBLOB, fldstHMEMO)
fields are mapped as ftOraBlob and ftOraClob,
respectively, and the DataSnap resolver performs
special query generation when resolving Oracle
BLOB/CLOB fields, but not when resolving Informix
BLOB/CLOBs. To address this issue, set InformixLob
to True when using Informix BLOB/CLOBs, and switch it
back to False (the default) when using Oracle
BLOB/CLOBs.
NOTE: The new Informix driver (dbexpinf.dll) has been
tested with Informix version 9.2.1 client/server
and 9.2.1 client with SE server.
MSSQL driver - Known issues
---------------------------
1) Connection with a Blank Password/OS Authentication:
With the current MSSQL driver you can't connect using a
blank password or with OS Authentication = True.
A patch will be made available soon at Borland's support
10. download site.
2) Master detail:
a) When trying to open a master-detail as a nested
dataset and if the detail link field is an INTEGER
type and defined NOT NULL you will get a SQL Error
"SQL State:HY000, SQL Error Code: 0, Invalid Input
parameter values. Check the status values for
details"
A patch will be made available soon at Borland's
support download site.
b) ApplyUpdates() on a master-detail with
"poFetchDetailsOnDemand" = True causes a SQL error
"Cannot create new connection because in manual or
distributed transaction mode". Workaround:
poFetchDetailsOnDemand = False (default)
dbExpress MSSQL driver BLOB access
-----------------------------------
dbExpress MSSQL uses ISequentialStream (OLEDB
interface) to access blobs from SQL Server. MS OLEDB
provider (SQLOLEDB) doesn't support accessing more than
one in a SELECT using ISequentialStream. So, if you are
projecting more than one blob column in your queries
the dbExpress driver will not use the ISequentialStream
to access blobs. Instead, it will bind huge buffers to
get the blob data. The buffer size is determined by the
BlobSize entry in dbxconnections.ini. Make sure to set
it to an appropriate size to improve performance when
more than one blob column is projected.
MySQL limitation (dbExpress)
----------------------------
MySQL can't filter with FLOAT fields in the WHERE
clause. Since this limitation prevents updates with
TClientDataset and TDataSetProvider, use DOUBLE
instead. For more information, see the MySQL
documentation.
Huge Text in MySQL (dbExpress)
------------------------------
MySQL Server has a startup parameter called max-
allowed-packet that, by default, is set to 1 megabyte
for most MySQL servers. Increase the value of max-
allowed-packet if you encounter difficulty writing
11. large amounts of data (such as large strings) to MySQL.
Oracle notes for dbExpress
--------------------------
When qualifying a table name with a user name, you must
use quotes around the table name when CommandType is
set to ctTable.
Oracle LONG and LONG RAW fields (dbExpress)
-------------------------------------------
When using Oracle, the size of LONG and LONG RAW fields
cannot be determined without fetching the whole field.
So if BLOB SIZE is set to -1, LONG and LONG RAW fields
are truncated to 64K. Recommendation: Set BLOB SIZE to
your best estimate of the blob size.
Configuring driver files (dbExpress)
-------------------------------------
The Oracle driver now supports Trim Char, Multiple
Transaction and OS Authentication. You need to add
these settings to your dbxdrivers for new aliases
and/or update dbxconnections in order to include these
settings for old aliases.
Please append the following at the end of dbxdrivers
file if you are using a driver file from an earlier
version of Delphi:
[Multiple Transaction]
False=0
True=1
[Trim Char]
False=0
True=1
[OS Authentication]
False=0
True=1
Add the following under the [Oracle] section in
dbxdrivers and under your existent Oracle alias.
OS Authentication=False
Multiple Transaction=False
Trim Char=False
Oracle OS authentication (dbExpress)
-------------------------------------
To get the correct list of tables and other schema
objects in the dbExpress components, set the User_Name
12. to OPS$XXX, where XXX is the OS Authenticated user.
=======================================================
ABOUT EDITING THE WINDOWS REGISTRY
Warning:
Registry edits are performed at your own risk.
Several items in this document and in other parts
of the documentation that accompany this product
describe how to edit your Windows registry. In most
cases, we recommend that you use the Microsoft
Regedit tool to perform your editing. Whatever tool
you use, however, you should, before making any
edits, make backups of your registry and thoroughly
familiarize yourself with the editing tool and the
registry editing process. The registry is a
critical component of your operating system, and
any mistakes made while editing it can cause your
machine to stop functioning.
=======================================================
PRODUCT INFORMATION ON THE WEB
In addition to numerous private sites that offer
information, instruction, and samples, the following
Borland Web-based resources provide a continuous stream
of news, product information, updates, code, and other
materials. You can connect to many of these resources
directly from the Help menu.
Delphi Direct [Help|Delphi Direct]
----------------------------------
This IDE add-in resource provides an automatically
updated list of links to the latest news, downloads,
and other information about Delphi and Borland.
Code Central
------------
The CodeCentral Repository is a free, searchable
database of code, tips, and other materials of interest
to developers. For details and registration
information, visit
http://codecentral.borland.com/
The Borland Web site
--------------------
Borland Software Corporation home page:
http://www.borland.com
[IDE: Help|Borland Home Page]
13. Delphi home page:
http://www.borland.com/delphi/
[IDE: Help|Delphi Home Page]
Delphi developer support:
http://www.borland.com/devsupport/delphi/
[IDE: Help|Delphi Developer Support]
Delphi updates and other downloads:
http://www.borland.com/devsupport/delphi/downloads/
Delphi documentation site:
http://www.borland.com/techpubs/delphi
Newsgroups:
http://www.borland.com/newsgroups/
Worldwide offices and distributors:
http://www.borland.com/bww/
FTP site (anonymous access):
ftp.borland.com
=======================================================
Copyright (c) 2002 Borland Software Corporation.
All rights reserved.